randrange(start, stop)
শুধুমাত্র পূর্ণসংখ্যার যুক্তিগুলি নেয়। সুতরাং আমি কীভাবে দুটি ভাসমান মানের মধ্যে একটি এলোমেলো নম্বর পেতে পারি?
randrange(start, stop)
শুধুমাত্র পূর্ণসংখ্যার যুক্তিগুলি নেয়। সুতরাং আমি কীভাবে দুটি ভাসমান মানের মধ্যে একটি এলোমেলো নম্বর পেতে পারি?
উত্তর:
র্যান্ডম.উইনফর্ম (ক, খ) ব্যবহার করুন :
>>> random.uniform(1.5, 1.9)
1.8733202628557872
Returns a random floating point number N such that a <= N <= b for a <= b and b <= N <= a for b < a
অন্য কথায় আউটপুট N
উভয়ই ইনপুট a
এবং সমান হতে পারে b
। এই ক্ষেত্রে 1.5
এবং 1.9
।
.uniform
ফাংশনটি ব্যবহার না করেই এটি করার অন্য কোনও উপায় আছে , তবে পরিবর্তে হয় দু'টি .random
বা randrange
?
1.5 + random.random() * (1.9 - 1.5)
এটি করা উচিত, যদিও চশমা অনুসারে এটি কখনই ঠিক ফিরে আসবে না 1.9
(এমনকি তত্ত্বেও )।
আপনি যদি পয়েন্টের ডানদিকে এন অঙ্কগুলি সহ একটি এলোমেলো ফ্লোট তৈরি করতে চান তবে আপনি এটি তৈরি করতে পারেন:
round(random.uniform(1,2), N)
দ্বিতীয় যুক্তি হ'ল দশমিক সংখ্যা।
সর্বাধিক সাধারণত, আপনি ব্যবহার করতে চাই:
import random
random.uniform(a, b) # range [a, b) or [a, b] depending on floating-point rounding
আপনার প্রয়োজনে পাইথন অন্যান্য বিতরণ সরবরাহ করে ।
আপনি যদি numpy
ইতিমধ্যে আমদানি করে থাকেন তবে আপনি এর সমতুল্য ব্যবহার করতে পারেন:
import numpy as np
np.random.uniform(a, b) # range [a, b)
আবার আপনার যদি অন্য বিতরণ দরকার numpy
হয় তবে পাইথনের একই বিতরণ সরবরাহ করে পাশাপাশি অনেকগুলি অতিরিক্ত সরবরাহও করে ।
np.random.uniform(start, stop)
বাnp.random.uniform(start, stop, samples)
যদি আপনি একাধিক নমুনা চান। অন্যথায় নীচের উত্তরগুলি সেরা।