Fixnum والأرقام الرئيسية في روبي
-
23-08-2019 - |
سؤال
قبل أن أضعك على كتابة هذا بنفسي، هل شاهد أي شخص تنفيذ روبي للسلوك التالي؟
puts 7.nextprime(); #=> 11
puts 7.previousprime(); #=> 5
puts 7.isprime(); #=> true
من الواضح أن هذا النوع من الأشياء سيكون قبيحا للأعداد الكبيرة ولكن للأعداد الصحيحة أبدا تجاوز عدد قليل من الف
المحلول
روبي يأتي مع مدمج Prime
الفئة التي تتيح لك التكرار من خلال الأعداد الأولية بدءا من 1، لكنني لا أرى أي طريقة لتهيئة قيمة البداية بخلاف 1، ولا فحص مسند لتحديد ما إذا كان هناك عدد أو لا أحد أم لا. أود أن أقول عن ذلك، على الرغم من أنه يجب أن تضع في اعتبارك أن الرياضيات في روبي يمكن أن تكون بطيئة وإذا كان الأداء عامل قد تكون أفضل حالا بالنظر في كتابة ذلك كملحق C أو Java. هنا مثال على كيفية استخدام Rubyinline لتوليد الأعداد الأولية في ج.
أيضا، أقترح عليك تجنب استخدام اسم الطريقة 7.isprime
- الاتفاقية في روبي 7.prime?
.
نصائح أخرى
ألق نظرة على المقتطفات الموجودة هنا. وبعد يمكن أن تعطيك headstart.