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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top