akiyama-tanigawa_numerators.sf 1.8 KB

1234567891011121314151617181920212223242526
  1. #!/usr/bin/ruby
  2. # The unreduced numerators produced by the Akiyama–Tanigawa algorithm.
  3. # The corresponding unreduced denominators are:
  4. # https://oeis.org/A064320
  5. # Example:
  6. # bernoulli(n) = akiyama_tanigawa_numerator(n) / Prod_{k=2..n+1} k^binomial(n, k-1)
  7. func akiyama_tanigawa_numerator(n) {
  8. n.bernfrac * prod(2..(n+1), {|k| k**binomial(n, k-1) })
  9. }
  10. for n in (0..10 -> by(2)) {
  11. say "A(#{n}) = #{akiyama_tanigawa_numerator(n).abs.factor_exp} = #{akiyama_tanigawa_numerator(n)}"
  12. }
  13. __END__
  14. A(0) = [] = 1
  15. A(2) = [[2, 1]] = 2
  16. A(4) = [[2, 11], [3, 5]] = -497664
  17. A(6) = [[2, 51], [3, 20], [5, 15]] = 239609999527967195136000000000000000
  18. A(8) = [[2, 199], [3, 85], [5, 69], [7, 28]] = -22488019432655947294586954838400753261235046040984100580870030674321006065067975174876421496694774956032000000000000000000000000000000000000000000000000000000000000000000000
  19. A(10) = [[2, 871], [3, 386], [5, 221], [7, 210]] = 20365257530918016171039056001495283122906935375511621880937985285541368957251236512682327909990112153849262228719316998217599272439458747323536731851414642636432448263703122571698861175490069815698104764675945775839382072046627151681800069326017346945224612080463443188802561045025518519287776438753210636201461443257757332000981973116850724254395705822262814809408842731863277702200645974274119109818626996367781903697874837091937872569655899718801790772307704771607635081669632024064847422349647168621736312036578982794202420561798986849926832723350414950400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000