কিভাবে একটি ভাসমান পরিসীমা মধ্যে একটি এলোমেলো নম্বর পেতে?


414

randrange(start, stop)শুধুমাত্র পূর্ণসংখ্যার যুক্তিগুলি নেয়। সুতরাং আমি কীভাবে দুটি ভাসমান মানের মধ্যে একটি এলোমেলো নম্বর পেতে পারি?


2
আপনি যদি নাম্বার চান তবে এটি np.random.uniform(start, stop)বা np.random.uniform(start, stop, samples)যদি আপনি একাধিক নমুনা চান। অন্যথায় নীচের উত্তরগুলি সেরা।
sachinruk

উত্তর:


650

র্যান্ডম.উইনফর্ম (ক, খ) ব্যবহার করুন :

>>> random.uniform(1.5, 1.9)
1.8733202628557872

4
এটি কি তাত্ত্বিকভাবে 1.5 এবং 1.9 উত্পাদন করতে পারে? বা এটি কেবল কখনও 1.50 ~ 1 এবং 1.89 produce উত্পাদন করতে পারে?
Musixauce3000

14
@ Musixauce3000 সংক্ষিপ্ত উত্তর: হ্যাঁ। দীর্ঘ উত্তর: আপনি যদি ডকুমেন্টেশনের দিকে লক্ষ্য করেন তবে এটিতে বলা আছে 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
@ ডেরিডিডিএক্স 1.5 + random.random() * (1.9 - 1.5)এটি করা উচিত, যদিও চশমা অনুসারে এটি কখনই ঠিক ফিরে আসবে না 1.9(এমনকি তত্ত্বেও )।
ইয়োনাতান এন

@ Musixauce3000 দেখে মনে uniform(a, b)হয় এটি প্রয়োগ করা হয়েছে a + (b-a) * random()এবং গিথুব
পাভেল

74

random.uniform(a, b)আপনার খুঁজছেন হিসাবে প্রদর্শিত হবে। ডক্স থেকে:

একটি এলোমেলো ভাসমান পয়েন্ট নম্বর এনটি ফেরান যাতে একটি <= N <= b এর জন্য <= b এবং b <= N <= a খ <a এর জন্য।

এখানে দেখুন ।


47

আপনি যদি পয়েন্টের ডানদিকে এন অঙ্কগুলি সহ একটি এলোমেলো ফ্লোট তৈরি করতে চান তবে আপনি এটি তৈরি করতে পারেন:

round(random.uniform(1,2), N)

দ্বিতীয় যুক্তি হ'ল দশমিক সংখ্যা।


আমি জানি না কেন এটির আরও বেশি উত্সাহ নেই, অন্যদের কাছে রাউন্ডিং মেকানিজম নেই।
TheTechRobo36414519

2

সর্বাধিক সাধারণত, আপনি ব্যবহার করতে চাই:

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হয় তবে পাইথনের একই বিতরণ সরবরাহ করে পাশাপাশি অনেকগুলি অতিরিক্ত সরবরাহও করে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.