Advertisement
Guest User

Untitled

a guest
Jan 18th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.30 KB | None | 0 0
  1. 5! = 5 * 4 * 3 * 2 * 1 = 120
  2.  
  3. {,1{)*}/}:f
  4.  
  5. # pseudocode: f(n){c=1;while(n>1){c*=n;n--};return c}
  6. {:n;1:c;{n 1>}{n c*:c;n 1-:n;}while c}:f
  7.  
  8. # pseudocode: f(n){return n==0?n*f(n-1):1}
  9. {:n{n.(f*}1if}:f # taking advantage of the tokeniser
  10.  
  11. {,{*}*}:f
  12.  
  13. {,{)}%{*}*}:f
  14.  
  15. {).,{)}%{*}*/}:f
  16.  
  17. {.{1{.@*(.}do;}{)}if}:f
  18.  
  19. {1.!!{{.@*(.}do}*+}:f
  20. {.!{1{.@*(.}do}or+}:f
  21. {.{1{.@*(.}do}1if+}:f
  22.  
  23. {.!{.)f*0}or+}:f
  24. {.{.)f*0}1if+}:f
  25. {.{.(f*}{)}if}:f
  26.  
  27. f n=product[1..n]
  28.  
  29. f=lambda x:0**x or x*f(x-1)
  30.  
  31. ×/∘⍳
  32.  
  33. ×/∘⍳ 5
  34. 120
  35.  
  36. f←×/∘⍳
  37.  
  38. f=:*/@:>:@i.
  39.  
  40. f 0
  41. 1
  42. f 5
  43. 120
  44. f 125x
  45. 1882677176888926099743767702491600857595403
  46. 6487149242588759823150835315633161359886688
  47. 2932889495923133646405445930057740630161919
  48. 3413805978188834575585470555243263755650071
  49. 31770880000000000000000000000000000000
  50.  
  51. {),(){*}/}:! # happy robot version {*}/
  52.  
  53. {),()+{*}*}:!
  54.  
  55. ~),()+{*}*
  56.  
  57. 0!
  58.  
  59. 1
  60.  
  61. 125!
  62.  
  63. 188267717688892609974376770249160085759540364871492425887598231508353156331613598866882932889495923133646405445930057740630161919341380597818883457558547055524326375565007131770880000000000000000000000000000000
  64.  
  65. $f={[*]1..$_}
  66.  
  67. f=@(x)prod(1:x)
  68.  
  69. >> f(0)
  70. ans =
  71. 1
  72. >> f(4)
  73. ans =
  74. 24
  75. >> tic,f(125),toc
  76. ans =
  77. 1.8827e+209
  78. Elapsed time is 0.000380 seconds.
  79.  
  80. f=lambda x:x/~x+1or x*f(x-1)
  81.  
  82. /f{1 exch -1 1{mul}for}def
  83.  
  84. GS> 0 f =
  85. 1
  86. GS> 1 f =
  87. 1
  88. GS> 8 f =
  89. 40320
  90.  
  91. GS> 0{1 exch -1 1{mul}for}def
  92. GS> 8 0 load exec =
  93. 40320
  94.  
  95. function f(n)!n||n*f(n-1)
  96.  
  97. f=(n)->!n||n*f(n-1)
  98.  
  99. def f(n)(1..n).inject 1,:*end
  100.  
  101. f(0) -> 1
  102. f(5) -> 120
  103.  
  104. f=->n{n>1?n*f[n-1]:1}
  105.  
  106. irb(main):009:0> f=->n{n>1?n*f[n-1]:1}
  107. => #<Proc:0x25a6d48@(irb):9 (lambda)>
  108. irb(main):010:0> f[125]
  109. => 18826771768889260997437677024916008575954036487149242588759823150835315633161
  110. 35988668829328894959231336464054459300577406301619193413805978188834575585470555
  111. 24326375565007131770880000000000000000000000000000000
  112.  
  113. :p
  114.  
  115. : % generate list 1,2,3,...,i, where i is an implicit input
  116. p % calculate the product of of all the list entries (works on an empty list too)
  117.  
  118. BigInteger f(int n){return n<2?BigInteger.ONE:new BigInteger(""+n).multiply(f(n-1));}
  119.  
  120. let f n=Seq.fold(*)1{1..n}
  121.  
  122. double f(int n){return n<2?1:n*f(n-1);}
  123.  
  124. filter f{if($_){$_*(--$_|f}else{1}}
  125.  
  126. > 0,5,125|f
  127. 1
  128. 120
  129. 1,88267717688893E+209
  130.  
  131. def f(x:BigInt)=(BigInt(1)to x).product
  132.  
  133. filter f($x){if(!$x){1}else{$x*(f($x-1))}}
  134.  
  135. PS C:> f 0
  136. 1
  137. PS C:> f 5
  138. 120
  139. PS C:> f 1
  140. 1
  141. PS C:> f 125
  142. 1.88267717688893E+209
  143.  
  144. 0:#v_# 1#<$v *<
  145. >:1-:#^_$>:#^_$
  146.  
  147. 555** 0:#v_# 1#<$v *<
  148. >:1-:#^_$>:#^_$ .@
  149.  
  150. 0 0:#v_# 1#<$v *<
  151. >:1-:#^_$>:#^_$ .@
  152.  
  153. T f(T)(T n){return n < 2 ? 1 : n * f(n - 1);}
  154.  
  155. T f(T)(T n)
  156. {
  157. return n < 2 ? 1 : n * f(n - 1);
  158. }
  159.  
  160. template F(int n){static if(n<2)enum F=1;else enum F=n*F!(n-1);}
  161.  
  162. template F(int n)
  163. {
  164. static if(n < 2)
  165. enum F = 1;
  166. else
  167. enum F = n * F!(n - 1);
  168. }
  169.  
  170. */>:i.
  171.  
  172. f(a){a=a>0?f(a-1)*a:1;}
  173.  
  174. f(a){return a>0?f(a-1)*a:1;}
  175.  
  176. */1.+!
  177.  
  178. */1.+!125.
  179. 1.882677e+209
  180.  
  181. ,[>+>+>>>+<<<<<-]>>-<[[>[->+>+<<]>>[-<<+>>]<<<-]>>>>[<<<<+>>>>-]<<<<->[-]>[<+>-]<<[>>>>+>+<<<<<-]>>>>>[<<<<<+>>>>>-]<<<<<-]>.
  182.  
  183. def f(n):return n and n*f(n-1) or 1
  184.  
  185. def f(n):return n*f(n-1) if n else 1
  186.  
  187. {($p=1)..$_-ge1|%{$p*=$_};$p}
  188.  
  189. > &{($p=1).."$args"-ge1|%{$p*=$_};$p} 125
  190. 1,88267717688893E+209
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement