gmp_binomial.phpt 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. --TEST--
  2. gmp_binomial(): Binomial coefficients
  3. --SKIPIF--
  4. <?php if (!extension_loaded('gmp')) die('skip gmp extension not loaded'); ?>
  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. var_dump(gmp_binomial(5, -2));
  19. ?>
  20. --EXPECTF--
  21. object(GMP)#1 (1) {
  22. ["num"]=>
  23. string(3) "252"
  24. }
  25. object(GMP)#1 (1) {
  26. ["num"]=>
  27. string(3) "252"
  28. }
  29. object(GMP)#2 (1) {
  30. ["num"]=>
  31. string(3) "252"
  32. }
  33. object(GMP)#2 (1) {
  34. ["num"]=>
  35. string(242) "65208469245472575695415972927215718683781335425416743372210247172869206520770178988927510291340552990847853030615947098118282371982392705479271195296127415562705948429404753632271959046657595132854990606768967505457396473467998111950929802400"
  36. }
  37. object(GMP)#2 (1) {
  38. ["num"]=>
  39. string(1) "1"
  40. }
  41. object(GMP)#2 (1) {
  42. ["num"]=>
  43. string(1) "0"
  44. }
  45. object(GMP)#2 (1) {
  46. ["num"]=>
  47. string(1) "1"
  48. }
  49. object(GMP)#2 (1) {
  50. ["num"]=>
  51. string(1) "1"
  52. }
  53. object(GMP)#2 (1) {
  54. ["num"]=>
  55. string(2) "-1"
  56. }
  57. object(GMP)#2 (1) {
  58. ["num"]=>
  59. string(1) "7"
  60. }
  61. Warning: gmp_binomial(): k cannot be negative in %s on line %d
  62. bool(false)