Fixnum und Primzahlen in ruby
-
23-08-2019 - |
Frage
Bevor ich daran, dies zu schreiben selbst, hat eine rubin Umsetzung der folgenden Verhalten jemand gesehen?
puts 7.nextprime(); #=> 11
puts 7.previousprime(); #=> 5
puts 7.isprime(); #=> true
Offensichtlich ist diese Art der Sache wäre für eine große Zahl hässlich sein, aber für ganze Zahlen nie ein paar tausend (die gemeinsame Instanz für mich) mehr als eine vernünftige Implementierung ist machbar, daher die Frage.
Lösung
Rubin kommt mit einer eingebauten in Prime
Klasse, die Sie durch Primzahlen beginnend bei 1 zu durchlaufen kann, aber ich sehe keine Möglichkeit, es mit einem Startwert zu initialisieren andere als 1 ist, noch ein Prädikat Überprüfung, ob eine Nummer zu bestimmen, prim ist. Ich würde sagen, gehen für sie, wenn Sie daran, dass Mathematik in Ruby halten sollte langsam sein kann und wenn die Leistung ein Faktor ist, können Sie besser dran angesichts sei es als C oder Java-Erweiterung zu schreiben. Hier ist ein Beispiel von wie RubyInline verwenden Primzahlen zu erzeugen in C .
Auch ich schlage vor, Sie die Methodennamen 7.isprime
zu vermeiden, mit -. Die Konvention in Ruby ist 7.prime?
Andere Tipps
Werfen Sie einen Blick auf die gefundenen Schnipsel hier . Sie könnten Sie einen Vorsprung.