Post Reply 
Multinomial coefficient
02-15-2015, 09:25 PM (This post was last modified: 02-21-2015 11:17 AM by salvomic.)
Post: #5
RE: Multinomial coefficient
And then (thank you Parisse for hint), the version without input.
Use: multinom(n,{list of k_i})

Code:

#cas
multinom(args):=
// Multinomial by Salvo M. multinom(n,{list k_i})
BEGIN
local n, k, argv,argc;
argv:=[args];
argc:=size(argv);
IF argc !=2 THEN
return "Input: integer n, {list k}"; 
ELSE
n:=argv(1);
k:=argv(2);
IF (type(k) != DOM_LIST) THEN return "Second argument must be a list"; ELSE
// controllo interi
 n:= ip(n); k:= ip(k);
 return  n!/∏LIST(k!);
END; // if inner

END; // if out

END;
#end

The program has a control if user doesn't input 2 arguments (no more, no less), if the second argument is not a list and rounds both arguments, to get integers.

Caveat: with this version (#cas program) integer part command -ip()- must be lowercase or ip(k) doesn't works for the list giving wrong results (I wonder why...)

Enjoy and please suggest improvements

∫aL√0mic (IT9CLU) :: HP Prime 50g 41CX 71b 42s 39s 35s 12C 15C - DM42, DM41X - WP34s Prime Soft. Lib
Visit this user's website Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
Multinomial coefficient - salvomic - 02-15-2015, 11:59 AM
RE: Multinomial coefficient - salvomic - 02-15-2015, 05:48 PM
RE: Multinomial coefficient - parisse - 02-15-2015, 07:44 PM
RE: Multinomial coefficient - salvomic - 02-15-2015, 08:20 PM
RE: Multinomial coefficient - salvomic - 02-15-2015 09:25 PM



User(s) browsing this thread: 1 Guest(s)