gmp_binomial.phpt 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. --TEST--
  2. gmp_binomial(): Binomial coefficients
  3. --EXTENSIONS--
  4. gmp
  5. --FILE--
  6. <?php
  7. var_dump(gmp_binomial(10, 5));
  8. var_dump(gmp_binomial("10", 5));
  9. $n = gmp_init(10);
  10. var_dump(gmp_binomial($n, 5));
  11. var_dump(gmp_binomial(10000, 100));
  12. var_dump(gmp_binomial(0, 0));
  13. var_dump(gmp_binomial(0, 1));
  14. var_dump(gmp_binomial(1, 0));
  15. var_dump(gmp_binomial(1, 1));
  16. var_dump(gmp_binomial(-1, 5)); // == -(1 + 5 - 1 over 5)
  17. var_dump(gmp_binomial(-2, 6)); // == (2 + 6 - 1 over 6)
  18. try {
  19. var_dump(gmp_binomial(5, -2));
  20. } catch (\ValueError $e) {
  21. echo $e->getMessage() . \PHP_EOL;
  22. }
  23. ?>
  24. --EXPECT--
  25. object(GMP)#1 (1) {
  26. ["num"]=>
  27. string(3) "252"
  28. }
  29. object(GMP)#1 (1) {
  30. ["num"]=>
  31. string(3) "252"
  32. }
  33. object(GMP)#2 (1) {
  34. ["num"]=>
  35. string(3) "252"
  36. }
  37. object(GMP)#2 (1) {
  38. ["num"]=>
  39. string(242) "65208469245472575695415972927215718683781335425416743372210247172869206520770178988927510291340552990847853030615947098118282371982392705479271195296127415562705948429404753632271959046657595132854990606768967505457396473467998111950929802400"
  40. }
  41. object(GMP)#2 (1) {
  42. ["num"]=>
  43. string(1) "1"
  44. }
  45. object(GMP)#2 (1) {
  46. ["num"]=>
  47. string(1) "0"
  48. }
  49. object(GMP)#2 (1) {
  50. ["num"]=>
  51. string(1) "1"
  52. }
  53. object(GMP)#2 (1) {
  54. ["num"]=>
  55. string(1) "1"
  56. }
  57. object(GMP)#2 (1) {
  58. ["num"]=>
  59. string(2) "-1"
  60. }
  61. object(GMP)#2 (1) {
  62. ["num"]=>
  63. string(1) "7"
  64. }
  65. gmp_binomial(): Argument #2 ($k) must be greater than or equal to 0