ruby - rom এর বৈশিষ্ট্য



রুবিতে A এবং B এর মধ্যে একটি র্যান্ডম সংখ্যা কীভাবে তৈরি করতে হয়? (6)

10 এবং 10 ** 24 জন্য

rand(10**24-10)+10

উদাহরণস্বরূপ, 3 এবং 10 এর মধ্যে একটি র্যান্ডম সংখ্যা তৈরি করতে, আমি ব্যবহার করি: rand(8) + 3

এই কাজ করার জন্য একটি চমৎকার উপায় আছে ( rand(3, 10) মত কিছু rand(3, 10) )?


আপডেট: রুবি 1.9.3 Kernel#rand এছাড়াও রেঞ্জ গ্রহণ করে

rand(a..b)

http://www.rubyinside.com/ruby-1-9-3-introduction-and-changes-5428.html

অ্যারে রূপান্তর খুব ব্যয়বহুল হতে পারে, এবং এটি অপ্রয়োজনীয়।

(a..b).to_a.sample

অথবা

[*a..b].sample

Array#sample

রুবি স্ট্যান্ডার্ড 1.8.7+।
দ্রষ্টব্য: 1.8.7 এ # চয়েস নামকরণ করা হয়েছে এবং পরে সংস্করণগুলিতে নামকরণ করা হয়েছে।

কিন্তু যাইহোক, জেনারেটর অ্যারে সংস্থান প্রয়োজন, এবং আপনি ইতিমধ্যে লিখেছেন সমাধান সবচেয়ে ভাল, আপনি করতে পারেন।


শুধু পরিসীমা অপারেটরদের মধ্যে পার্থক্যটি নোট করুন:

3..10  # includes 10
3...10 # doesn't include 10

this উত্তরটি দেখুন: রুবি 1.9.2 তে আছে, কিন্তু পূর্ববর্তী সংস্করণগুলিতে নেই। ব্যক্তিগতভাবে আমি মনে করি র্যান্ড (8) + 3 সূক্ষ্ম, তবে যদি আপনি আগ্রহী হন তবে লিঙ্কটিতে বর্ণিত র্যান্ডম শ্রেণির পরীক্ষা করুন।


rand(3..10)

Kernel#rand

সর্বাধিক একটি রেঞ্জ যখন, র্যান্ড একটি র্যান্ডম নম্বর যেখানে পরিসীমা। মেম্বার? (সংখ্যা) == সত্য।


Random.new.rand(a..b) 

যেখানে আপনার সর্বনিম্ন মান এবং b আপনার সর্বোচ্চ মান।





range