ruby - Ruby 中的大指数?

标签 ruby math exponent

我只是在做一些与大学相关的 Diffie-Hellman 练习,并尝试使用 ruby​​。 遗憾的是,ruby 似乎无法处理大指数:

warning: in a**b, b may be too big
NaN
[...]

有什么办法吗? (例如,特殊的数学课或类似的东西?)

附注这是有问题的代码:

generator = 7789
prime = 1017473
alice_secret = 415492
bob_secret = 725193

puts from_alice_to_bob = (generator**alice_secret) % prime
puts from_bob_to_alice = (generator**bob_secret) % prime

puts bobs_key_calculation = (from_alice_to_bob**bob_secret) % prime
puts alices_key_calculation = (from_bob_to_alice**alice_secret) % prime

最佳答案

你需要做所谓的,modular exponentiation .

关于ruby - Ruby 中的大指数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1758669/

相关文章:

c - 有哪些方法可以对相应二进制编码大于硬件支持的值进行算术运算?

javascript - 电源列表的最后一位

c - 当 b 可能为负数或小数时,如何编写一个函数来计算 a^b?

Ruby - 为什么排序重新排序相等的元素

algorithm - 给定exp()函数,如何实现ln()函数呢?

ruby-on-rails - 使用 Nokogiri 解析 HTML - The Ruby/Rails Way

arrays - 降低 Perl 数组的时间复杂度

c# - 如何在常量表达式中求幂?

ruby - jruby REXML 和 REXML::Document 线程安全吗?

javascript - 使用 AJAX 比较 Ruby 中的变量,然后相应地渲染 View