bernoulli_numbers_from_zeta.sf 872 B

123456789101112131415161718192021222324252627282930
  1. #!/usr/bin/ruby
  2. const tau = Num.tau
  3. func bern_asym(n) {
  4. (2 * n!) / tau**n
  5. }
  6. for n in (0..10) {
  7. if (n == 1) {
  8. say "bern(#{n}) = #{(tau/4 * bern_asym(n))}"
  9. }
  10. else {
  11. say "bern(#{n}) = #{((-1)**(n/2 + 1) * zeta(n) * bern_asym(n))}"
  12. }
  13. }
  14. __END__
  15. bern(0) = 1
  16. bern(1) = 0.5
  17. bern(2) = 0.166666666666666666666666666666666666666666666667
  18. bern(3) = 0.0581522694043751984116798354780817247093518520593i
  19. bern(4) = -0.0333333333333333333333333333333333333333333333333
  20. bern(5) = -0.0254132611404785053204117740694788471052539657488i
  21. bern(6) = 0.0238095238095238095238095238095238095238095238095
  22. bern(7) = 0.0262913232607807093758740732522625841797758392335i
  23. bern(8) = -0.0333333333333333333333333333333333333333333333333
  24. bern(9) = -0.0476480983522143238974848242999231893790264122347i
  25. bern(10) = 0.0757575757575757575757575757575757575757575757576