ruby - ruby 中的 fixnum 和素数

标签 ruby math primes monkeypatching

在我开始自己写这篇文章之前,有没有人看到过以下行为的 ruby​​ 实现?

puts 7.nextprime();     #=>  11
puts 7.previousprime(); #=>  5
puts 7.isprime();       #=> true

显然,这种事情对于大数来说是丑陋的,但对于从不超过几千的整数(对我来说是常见的例子),一个明智的实现是可行的,因此问题。

最佳答案

Ruby 带有一个内置的 Prime 类,它允许您从 1 开始遍历素数,但我看不到用 1 以外的起始值初始化它的方法,也没有谓词检查判断一个数是否为素数。我会说去做吧,尽管您应该记住 Ruby 中的数学可能很慢,如果性能是一个因素,您最好考虑将其编写为 C 或 Java 扩展。这是 how to use RubyInline to generate primes in C 的示例.

此外,我建议您避免使用方法名称 7.isprime - Ruby 中的约定是 7.prime?

关于ruby - ruby 中的 fixnum 和素数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/719049/

相关文章:

ruby-on-rails - 我们上传文件时的临时文件夹在哪里

algorithm - 布伦特周期检测算法

ruby-on-rails - 如何与不同计算机/远处的数据库进行交互? ( ruby )

javascript - 使用 Javascript 在 Rails 应用程序中显示/隐藏 DIV 未按预期工作

ruby - 登录到远程位置

javascript - 在 JavaScript 中查找多边形的中心点

java - 当我单击“计算”按钮以显示我的结果时应用程序崩溃

performance - 当 f(n) = n^.1 且 g(n) = log(n)^10 时,f(n) = Ω(g) 吗?

java - 求一个数的因数的方法

cryptography - 查找 Schnorr 组生成器的快速方法