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


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.