"এলোমেলোতা" বোঝা


829

আমি এদিকে মাথা তুলতে পারি না, যা এলোমেলো?

rand()

বা :

rand() * rand()

আমি এটি একটি আসল মস্তিষ্কের টিজার খুঁজে পেয়েছি, আপনি কি আমাকে সাহায্য করতে পারেন?


সম্পাদনা করুন:

স্বজ্ঞাতভাবে আমি জানি যে গাণিতিক উত্তরটি হ'ল তারা সমানভাবে এলোমেলো, তবে আমি সাহায্য করতে পারি না তবে মনে করতে পারি যে আপনি যখন দু'টিকে একসাথে গুন করার সময় দু'বার "এলোমেলো নাম্বার অ্যালগরিদম চালাচ্ছেন" তবে আপনি কিছু না করে কিছু র্যান্ডম তৈরি করবেন এটি একবার.


162
"আরও এলোমেলো" বলতে কী বোঝ?
dan04

55
অন্যরা যেমন বলেছে, এই দুটি পরিমাণের একই বিতরণ নেই। আপনি আসলে যে বিতরণ পাচ্ছেন তার জন্য mathworld.wolfram.com/UniformProductDist वितरण.html দেখুন । এটি একটি একক ইউনিফর্ম এলোমেলো সংখ্যার সাথে তুলনা করুন, যেখানে বিরতিতে সমস্ত মান সমান সম্ভাবনা রয়েছে, সুতরাং সম্ভাবনার ঘনত্বের কার্যটি একটি অনুভূমিক সরলরেখা।
bnaul

44
আমি দৃঢ়ভাবে পড়া সুপারিশ এলোমেলো বোকামি উপর দৈনিক ডব্লিউটিএফ । বিশেষত এই মন্তব্যটি পড়ুন , যেখানে তারা এই নতুন এলোমেলো সংখ্যার আউটপুট বিশ্লেষণ করে। এটি থেকে সরিয়ে নেওয়ার বার্তাটি হ'ল: এলোমেলো সংখ্যায় স্বেচ্ছাসেবী ক্রিয়াকলাপগুলি অগত্যা এলোমেলো আউটপুট দেয় না
স্পষ্টত

51
এছাড়াও: স্বজ্ঞাতভাবে আমি জানি যে গাণিতিক উত্তরগুলি
হ'ল

92
পরিসংখ্যান এবং অন্তর্দৃষ্টি একই পার্টিতে নেবেন না ....
অন্তর্দৃষ্টি ডক্টর বেলিসারিয়াস

উত্তর:


1481

শুধু একটি ব্যাখ্যা

যদিও পূর্বের উত্তরগুলি সঠিক যখনই আপনি সিউডো-এলোমেলো পরিবর্তনশীল বা এর গুণকের স্পষ্টতাকে চিহ্নিত করার চেষ্টা করেন, আপনার অবশ্যই সচেতন হওয়া উচিত যে র্যান্ডম () সাধারণত অভিন্নভাবে বিতরণ করা হয়, র্যান্ডম () * র্যান্ডম () নয়।

উদাহরণ

এটা একটা সিউডো-এলোমেলো ভেরিয়েবলের মাধ্যমে অনুকরণ অভিন্ন র্যান্ডম বিতরণ নমুনা :

র‌্যান্ডম এর হিস্টোগ্রাম ()

        BarChart[BinCounts[RandomReal[{0, 1}, 50000], 0.01]]

এটি দুটি বিতরণ ভেরিয়েবলকে গুণ করার পরে আপনি এই বিতরণটি পাবেন:

র‌্যান্ডম () * র‌্যান্ডম () এর হিস্টোগ্রাম

        BarChart[BinCounts[Table[RandomReal[{0, 1}, 50000] * 
                                 RandomReal[{0, 1}, 50000], {50000}], 0.01]]

সুতরাং, উভয়ই "এলোমেলো", তবে তাদের বিতরণটি খুব আলাদা।

আরেকটি উদাহরণ

যদিও 2 * র‌্যান্ডম () সমানভাবে বিতরণ করা হয়:

2 * র‌্যান্ডম () এর হিস্টোগ্রাম

        BarChart[BinCounts[2 * RandomReal[{0, 1}, 50000], 0.01]]

র্যান্ডম () + র্যান্ডম () নয়!

র্যান্ডম () + র্যান্ডম () এর হিস্টোগ্রাম

        BarChart[BinCounts[Table[RandomReal[{0, 1}, 50000] + 
                                 RandomReal[{0, 1}, 50000], {50000}], 0.01]]

কেন্দ্রীয় সীমাবদ্ধ উপপাদ্য

কেন্দ্রীয় সীমা উপপাদ্য বলে যে, এর সমষ্টি এলোমেলো () একটি থাকে সাধারন বন্টনের পদ বৃদ্ধি হিসাবে।

মাত্র চারটি শর্তাদির সাথে আপনি পান:

র্যান্ডম () + র্যান্ডম () + র্যান্ডম () + র্যান্ডম () এর হিস্টোগ্রাম

BarChart[BinCounts[Table[RandomReal[{0, 1}, 50000] + RandomReal[{0, 1}, 50000] +
                   Table[RandomReal[{0, 1}, 50000] + RandomReal[{0, 1}, 50000],
                   {50000}],
         0.01]]  

এবং এখানে আপনি 1, 2, 4, 6, 10 এবং 20 অভিন্ন বিতরণ করা এলোমেলো ভেরিয়েবল যুক্ত করে ইউনিফর্ম থেকে সাধারণ বিতরণে যাওয়ার রাস্তাটি দেখতে পাবেন:

বিভিন্ন সংখ্যার এলোমেলো ভেরিয়েবলের হিস্টোগ্রাম যুক্ত হয়েছে

সম্পাদন করা

কয়েকটি ক্রেডিট

থমাস আহলে মন্তব্যে উল্লেখ করার জন্য ধন্যবাদ যে শেষ দুটি ছবিতে প্রদর্শিত সম্ভাবনা বিতরণগুলি ইরভিন-হল বিতরণ হিসাবে পরিচিত

হাইককে তার দুর্দান্ত ছেঁড়া [] ফাংশনের জন্য ধন্যবাদ


41
+1 টি। যেহেতু ওপি সম্ভবত ইউনিফর্ম বিতরণ চেয়েছিল তাই এটি গ্রহণযোগ্য উত্তর হওয়া উচিত। এবং যদি আপনি তা করেন তবে আপনার rand()+rand()চর্বি কেন্দ্রের সাথে "2d6" টাইপ বিতরণ হবে।
থিলো

8
এটি খুব আকর্ষণীয়, তবে এটি আমাকে অভ্যন্তরে মেরে ফেলল যে এটি কতটা বিরোধী স্বজ্ঞাত। বিতরণ সম্পর্কে আমি আরও কিছু পড়ার পরে আমি আরও পুঙ্খানুপুঙ্খ চেহারা দেব। আপনাকে অনেক ধন্যবাদ!
ট্রুফা

46
@ ট্রুফা: সম্ভবত এটি অন্তর্দৃষ্টিটির কিছুটা অংশে সহায়তা করবে, কমপক্ষে অঙ্কের জন্য। এক ঘূর্ণিত ডাইয়ের "গড়" নেওয়ার কল্পনা করুন। এখন গড় দুটি পাশা নেওয়ার কল্পনা করুন। এখন একশ। আপনি আরও পাশা যোগ করার সাথে সাথে গড়ে এক বা একটি ছয় পাওয়ার সম্ভাবনা কী হবে?
জনসিপ

3
@ ম্যাট বি বি চার্টগুলি গণিতের এক-লাইনার lin কোড হ'ল পাঠ্য যা প্রতিটি গ্রাফের আগে। প্ল্যাটস করার জন্য ম্যাথামেটিকার একটি দুর্দান্ত ভাষা!
ডক্টর বেলিসারিয়াস

4
@ তিথনহ্যাকার: হ্যাঁ, হিস্টোগ্রামগুলি পক্ষপাতিত্ব প্রদর্শন করে, তবে তারা এলোমেলোভাবে প্রদর্শন করে না। পক্ষপাতযুক্ত এলোমেলো সংখ্যা কম এলোমেলো নয়। ব্যবহারকারীর আসল প্রশ্নের সঠিক উত্তর হিসাবে, "চতুর হওয়ার চেষ্টা করবেন না, আপনি কেবল জিনিসকে আরও খারাপ করে দেবেন," এবং এই উত্তরটি পয়েন্টটি পেয়ে যায়।
কেনেট বেলেনকি 21

152

আমি অনুমান করি যে উভয় পদ্ধতিই এলোমেলো যদিও আমার গটফিল বলবে এটি rand() * rand()কম এলোমেলো কারণ এটি আরও শূন্য বপন করবে। যত তাড়াতাড়ি এক rand()হয় 0, মোট হয়ে যায়0


18
এই স্ট্রিপটি ব্যবহার করে সমস্ত উত্তরের আমার উত্তরটি হ'ল: আমি রসিকতা পছন্দ করি তবে এটি অবশ্যই সিডব্লিউ হওয়া উচিত !
Andreas রেজব্র্যান্ড

4
@ অ্যান্ডোমার: না, তা নয়। একদমই না. আপনি কি জানেন যে সিডাব্লু কি?
Andreas Rejbrand

17
@ আন্ড্রেয়াস রেজব্র্যান্ড: সিডাব্লু হ'ল এমন একটি অস্ত্র যা এর উত্তর দেওয়ার ক্ষেত্রে খ্যাতি অস্বীকার করে আকর্ষণীয় প্রশ্নগুলিকে হত্যা করে। দেখে মনে হচ্ছে এটি নেফারড মেটা.স্ট্যাকেক্সেঞ্জার.কম / সেকশনস / 392/… (যা সম্ভবত এই আকর্ষণীয় প্রশ্নটি উঠে আসে!)
Andomar

11
@ অ্যান্ডোমার - হ্যাঁ, সিডব্লিউ আকর্ষণীয় প্রশ্নগুলি মেরে ফেলেছে, তবে ( এফএকিউ থেকে ) "সম্প্রদায়টি আপনার উপর কতটা বিশ্বাস রাখে তার খ্যাতি একটি মাপকাঠি" " আপনি যদি একটি মজার, অন্তর্ভুক্ত করেন, তাহলে কপিরাইটযুক্ত আপনার উত্তর ইমেজ, এটা আমার মনে আপনার উত্তর শীতল করতে হবে, এবং আমি সম্ভবত মনে হবে আপনি শীতল খুব, কিন্তু এটা আপনি আরো কি আস্থা না - তাই আদর্শভাবে, কোন প্রতিনিধির পুরষ্কার দেওয়া উচিত। তার অর্থ সিডব্লিউ, বা এর অর্থ একটির উত্তর দেওয়া উচিত নয় কিনা তা অন্য একটি সমস্যা।
রিচার্ড জে পি লে গুয়েন

13
কার্টুনে "এলোমেলো জেনারেটর" ট্রোলটি কেবল একটি সাধক আবৃত্তি π এবং কেবল ফেনম্যান পয়েন্টে পৌঁছতে পারে । বিটিডব্লিউ, π অঙ্কগুলি এলোমেলো? :)
মাইখাল

82

দুটিও 'এলোমেলো' নয়।

rand()একটি psuedo- এলোমেলো বীজের উপর ভিত্তি করে একটি প্রাক্কলিত সংখ্যার সেট তৈরি করে (সাধারণত বর্তমান সময়ের উপর ভিত্তি করে, যা সর্বদা পরিবর্তিত হয়)। ধারাবাহিকতায় পরপর দুটি সংখ্যাকে গুণিত করা একটি পৃথক, তবে সমানভাবে অনুমানযোগ্য, সংখ্যার ক্রম উত্পন্ন করে।

এটি সংঘর্ষগুলি হ্রাস করবে কিনা তা সম্বোধন করে উত্তরটি নেই। এটি যেখানে দুটি সংখ্যার গুণনের প্রভাবের কারণে সংঘর্ষগুলি বৃদ্ধি করবে 0 < n < 1। ফলাফলটি একটি ছোট ভগ্নাংশ হবে, ফলে বর্ণালীটির নীচের প্রান্তের দিকে ফলাফলের পক্ষপাত ঘটবে।

আরও কিছু ব্যাখ্যা। নিম্নলিখিতটিতে, 'অপ্রত্যাশিত' এবং 'এলোমেলো' কারো অনুমান করার ক্ষমতাটি বোঝায় যে পরবর্তী সংখ্যাগুলি পূর্ববর্তী সংখ্যার উপর ভিত্তি করে কী হবে, অর্থাৎ। একটি ওরাকল

প্রদত্ত বীজ xযা নিম্নলিখিত মানগুলির তালিকা তৈরি করে:

0.3, 0.6, 0.2, 0.4, 0.8, 0.1, 0.7, 0.3, ...

rand()উপরের তালিকাটি rand() * rand()উত্পন্ন করবে এবং উত্পন্ন করবে:

0.18, 0.08, 0.08, 0.21, ...

উভয় পদ্ধতিই সর্বদা একই বীজের জন্য একই সংখ্যার তালিকা তৈরি করে, এবং তাই কোনও ওরাকল দ্বারা সমানভাবে অনুমানযোগ্য। তবে আপনি যদি দুটি কলকে গুণনের ফলাফলগুলি দেখেন তবে আপনি দেখতে পাবেন যে সেগুলি 0.3মূল অনুক্রমের একটি সুনির্দিষ্ট বিতরণ সত্ত্বেও রয়েছে। দুটি ভগ্নাংশকে গুণিত করার কারণে সংখ্যাটি পক্ষপাতদুষ্ট। ফলস্বরূপ সংখ্যা সর্বদা কম, অতএব ঠিক অপ্রত্যাশিত হয়েও সংঘর্ষ হওয়ার সম্ভাবনা অনেক বেশি।


9
+1 নোট করুন যে অন্যদিকে rand()+rand()+rand()...ক্রমবর্ধমান "কম এলোমেলো" হয়ে যায় (যদি এলোমেলোভাবে আপনার অর্থ অভিন্নভাবে বিতরণ করা হয়)।
থিলো

4
@ তিলো না, তাই না ...? যদি একটি এলোমেলো ভেরিয়েবলটি (0,1) পরিসরে অভিন্নভাবে বিতরণ করা হয় এবং আপনি পরিবর্তনশীল n বারের নমুনা করেন এবং যোগফলটি গ্রহণ করেন, এটি কেবলমাত্র পরিসীমা (0, n) এ সমানভাবে বিতরণ করা হবে।
ব্যবহারকারী 359996

5
@ ট্রাফায় কেবল rand()এলোমেলো হওয়ার জন্য কেবল ভরসা করুন এবং এলোমেলোভাবে এটি 'বাড়ানোর' চেষ্টা করবেন না। একাধিকবার বীজ সেট করবেন না। যে কোনও স্বতন্ত্র বীজ পুরোপুরি ঠিক থাকে, যতক্ষণ না এটি নিজেই আধা-এলোমেলো। প্রচুর বাস্তবায়ন আমি ইউনিক্সের যুগকে বীজ হিসাবে ব্যবহার করেছি, যা প্রতি সেকেন্ডে পরিবর্তিত হয় এবং প্রতিবার পরিবর্তিত হওয়ার পরে এটি অনন্য।
ম্যাথু শার্লে

61
@ ব্যবহারকারী 359996 র‌্যান্ড () + র‌্যান্ড () অভিন্নভাবে বিতরণ করা হয়নি। দুটি ডাইস যুক্ত করুন, আপনি 2 এর চেয়ে 7 পাওয়ার সম্ভাবনা বেশি বেশি
লিয়াম

4
@ তিথনহ্যাকার আমার পোস্টে এলোমেলোতার সংজ্ঞাটি দেখুন। স্পেকট্রামের এক প্রান্তের দিকে মানগুলি ঝুঁকির কারণেই উত্পাদিত সঠিক মানগুলির পূর্বাভাসটি বৃদ্ধি করে না যা আমি যখন এলোমেলো শব্দটি ব্যবহার করছিলাম তখন আমি যা উল্লেখ করছি। তারপরে আমি পক্ষপাতিত্বের বিষয়টি আলাদাভাবে সমাধান করতে গিয়েছিলাম।
ম্যাথু শার্লে

80

একটি বিষয় বর্ণনা করার জন্য ওভারসিম্প্লিফিকেশন।

ধরে আপনার রেণ্ডম ফাংশন শুধুমাত্র আউটপুট 0বা 1

random()এর মধ্যে একটি (0,1), তবে এর random()*random()মধ্যে একটি(0,0,0,1)

আপনি পরিষ্কারভাবে দেখতে পাচ্ছেন যে 0দ্বিতীয় ক্ষেত্রে একটি পাওয়ার সম্ভাবনা কোনওভাবেই তাদের পাওয়ার সমান নয় 1


আমি যখন প্রথম এই উত্তর পোস্ট আমি সম্ভব যাতে সংক্ষিপ্ত যে একজন ব্যক্তির এটা পড়া এক নজরে থেকে মধ্যে পার্থক্য বুঝতে হবে যেমন রাখতে চেয়েছিলেন random()এবং random()*random(), কিন্তু আমি নিজেকে মূল বিজ্ঞাপন litteram প্রশ্নের উত্তর থেকে নয় রাখতে পারবেন না:

কোনটি এলোমেলো?

হচ্ছে যে random(), random()*random(), random()+random(), (random()+1)/2বা অন্য কোন সমন্বয় করে একটি নির্দিষ্ট ফলাফলের হতে না (সিউডোরান্ডম জেনারেটর ক্ষেত্রে অথবা একই প্রাথমিক অবস্থায়) এনট্রপি একই উৎস আছে, উত্তর যে তারা হবে সমানভাবে র্যান্ডম (পার্থক্য তাদের বিতরণ হয়)। একটি নিখুঁত উদাহরণ যা আমরা দেখতে পারি তা হ'ল ক্রেপস খেলা। আপনার প্রাপ্ত নম্বরটি হবে random(1,6)+random(1,6)এবং আমরা সকলেই জানি যে getting পাওয়ার সর্বাধিক সম্ভাবনা রয়েছে, তবে এর অর্থ এই নয় যে দুটি ডাইস রোলিংয়ের ফলাফলটি একটি রোলিংয়ের ফলাফলের চেয়ে কম বা কম এলোমেলো।


"বিভিন্ন ডিস্ট্রিবিউশনের উপর সমানভাবে এলোমেলো" রূপকভাবে কৌতুকপূর্ণ কিছু ঘনীভূত করার জন্য +1। খুব মার্জিত.
জেনস রোল্যান্ড

3
সুতরাং প্রযুক্তিগতভাবে, (এলোমেলো () * 0 + 9) সমানভাবে এলোমেলো, যেহেতু এটি এলোমেলোভাবে 1-এলিমেন্ট সেট থেকে কোনও মান দেয়: [9]। দিলবার্ট কার্টুন ঠিক ছিল।
জেনস রোল্যান্ড

2
@ জেনস রোলান "অন্য কোনও সংমিশ্রণ যা কোনও স্থির ফলাফলের দিকে না যায়";)। 999999 <i> সম্ভবত </ i> এলোমেলোভাবে উত্পন্ন হয়নি এবং এটি এলোমেলোভাবে উৎপন্ন হওয়ার সম্ভাবনাটি গণনা করা যেতে পারে।
আলিন পুরকারু

69

এখানে একটি সহজ উত্তর। একচেটিয়া বিবেচনা করুন। আপনি দুটি ছয়তরফা ডাইস রোল করুন (বা আপনার মধ্যে যারা গেমিং স্বরলিপি পছন্দ করেন তাদের জন্য 2 ডি 6) এবং তাদের পরিমাণটি নিন। সর্বাধিক সাধারণ ফলাফল 7 কারণ আপনি 6 টি রোল করতে পারেন এমন 6 টি সম্ভাব্য উপায় রয়েছে (1,6 2,5 3,4 4,3 5,2 এবং 6,1)। যেখানে একটি 2 কেবল 1,1 এ রোল করা যায়। এটি দেখতে সহজ যে 2d6 রোলিং 1d12 রোলিংয়ের চেয়ে আলাদা, এমনকি যদি পরিসীমা একই থাকে (উপেক্ষা করে যে আপনি 1 ডি 12 তে 1 পেতে পারেন তবে বিন্দুটি একই থাকবে)। আপনার ফলাফলগুলি যুক্ত করার পরিবর্তে গুণিত করা তাদের একই ধরণের ঝাঁকুনিতে ফেলেছে, আপনার বেশিরভাগ ফলাফল পরিসরের মাঝামাঝি সময়ে আসে। আপনি যদি আউটলিয়ারগুলি হ্রাস করার চেষ্টা করছেন তবে এটি একটি ভাল পদ্ধতি, তবে এটি এমনকি বিতরণ করতে সহায়তা করবে না।

(এবং অদ্ভুতরূপে এটি কম রোলগুলিও বাড়বে। আপনার এলোমেলোভাবে 0 থেকে শুরু করে ধরে নেওয়া, আপনি 0 এ স্পাইক দেখতে পাবেন কারণ অন্যান্য রোলটি যা 0 তে পরিণত হবে এটি 0 এবং 1 এর মধ্যে দুটি এলোমেলো সংখ্যা বিবেচনা করুন (অন্তর্ভুক্ত) ) এবং গুণমান। যদি কোনও ফলাফল 0 হয় তবে পুরো ফলাফলটি 0 হয়ে যায় অন্য ফলাফলের কোনও কারণ নেই both এর মধ্যে 1 পাওয়ার একমাত্র উপায় হ'ল উভয় রোলেরই 1 হওয়া practice অনুশীলনে সম্ভবত এটি কোনও ব্যাপার নয় তবে এটি একটি অদ্ভুত গ্রাফ তৈরি করে)


4
"আপনার ফলাফলগুলি যুক্ত করার পরিবর্তে গুণিত করা তাদের একই ধরণের ঝাঁকুনিতে ফেলেছে, আপনার বেশিরভাগ ফলাফল পরিসরের মাঝামাঝি সময়ে উপস্থিত হবে।" - বেলিসারিয়াসের উত্তরে দ্বিতীয় গ্রাফের বিপরীতে এই দাবিটি পরীক্ষা করুন।
ড্যানিয়েল আরউইকার

53

বাধ্যতামূলক এক্সকেসিডি ...
প্রত্যাবর্তন 4;  // ফেয়ার ডাইস রোল দ্বারা চয়ন করা, এলোমেলো হওয়ার গ্যারান্টিযুক্ত।


7
এই শব্দটি "এলোমেলোভাবে উপস্থিত হয়" শব্দটি উপস্থিত হওয়ার অবসান ঘটে :) :) আমি এটির জন্য অপেক্ষা করছিলাম !!
ট্রুফা

9
আমি রসিকতা পছন্দ করি তবে এটি অবশ্যই সিডব্লিউ হওয়া উচিত
Andreas রেজব্র্যান্ড

2
@ আন্ড্রেয়াস রেজব্রান্ড - কেন এই "রসবোধ" উত্তরটি সিডব্লিউ হওয়া উচিত?
ওয়ারেন

16
যদি এটি সিডাব্লু না হয়, প্রতিবার এটির ভোট দেওয়া হওয়ার সাথে পোস্টারের উত্তরের পোস্টার সজ্জিত হবে। এখন, খ্যাতি স্কুলে গ্রেডগুলির মতো - এটি প্রযুক্তিগত (এই ক্ষেত্রে, প্রোগ্রামিং) বিশেষজ্ঞের শংসাপত্র হওয়া উচিত। অতএব, সহজেই উজ্জীবিত এমন কিছু পোস্ট করে খ্যাতি অর্জন করতে সক্ষম হওয়া উচিত নয় তবে এর জন্য এর মতো কোনও দক্ষতার প্রয়োজন নেই। তদতিরিক্ত, খ্যাতি স্কোর ব্যবহারকারীর সুবিধাদিও নির্ধারণ করে। উদাহরণস্বরূপ, 10 000 স্কোর এ, ব্যবহারকারী স্ট্যাকওভারফ্লোতে সংযোজন সরঞ্জামগুলিতে অ্যাক্সেস পান।
আন্দ্রেয়াস রেজব্রান্ড

35

এটি আরও বিচ্ছিন্ন সংখ্যায় এটি ভাবতে সহায়তা করতে পারে। 1 থেকে 36 এর মধ্যে এলোমেলো সংখ্যা উত্পন্ন করতে চান তা বিবেচনা করুন, তাই আপনি সবচেয়ে সহজ উপায়টি স্থির করেন যে দুটি ন্যায্য, 6-পক্ষীয় পাশা নিক্ষেপ করা। আপনি এটি পান:

     1    2    3    4    5    6
  -----------------------------
1|   1    2    3    4    5    6
2|   2    4    6    8   10   12
3|   3    6    9   12   15   18
4|   4    8   12   16   20   24   
5|   5   10   15   20   25   30
6|   6   12   18   24   30   36

সুতরাং আমাদের ৩ numbers টি সংখ্যা রয়েছে তবে এগুলির সবগুলিই মোটামুটিভাবে উপস্থাপিত হয় না এবং কিছু কিছু ঘটে না। কেন্দ্রের তির্যকের নিকটে নম্বরগুলি (নীচে-বাম কোণে উপরে-ডান কোণে) সর্বাধিক ফ্রিকোয়েন্সি সহ ঘটে।

পাশ্বের মধ্যে অন্যায্য বিতরণ বর্ণনা করে এমন একই নীতিগুলি 0.0 এবং 1.0 এর মধ্যে ভাসমান পয়েন্ট সংখ্যাগুলিতে সমানভাবে প্রযোজ্য।


3
আরও দৃ concrete়তার সাথে দেখানোর জন্য +1, এলোমেলো সংখ্যাগুলিকে গুন করার সময় বিতরণে পরিবর্তন। ম্যাট্রিক্স কেবল শব্দ বা এমনকি একটি বিতরণ গ্রাফের চেয়েও বেশি সহায়তা করেছিল।
মার্জন ভেনেমা

26

"এলোমেলোতা" সম্পর্কে কিছু জিনিস পাল্টা স্বজ্ঞাত।

এর ফ্ল্যাট বিতরণ ধরে নিলে, নীচেরগুলি rand()আপনাকে অ-ফ্ল্যাট বিতরণ করবে:

  • উচ্চ পক্ষপাত: sqrt(rand(range^2))
  • পক্ষপাতটি মাঝখানে পিকিং: (rand(range) + rand(range))/2
  • কম: পক্ষপাত: range - sqrt(rand(range^2))

নির্দিষ্ট পক্ষপাতের বক্ররেখা তৈরি করার অন্যান্য অনেক উপায় রয়েছে। আমি একটি দ্রুত পরীক্ষা করেছি rand() * rand()এবং এটি আপনাকে একটি খুব অ-রৈখিক বিতরণ করে।


24

বেশিরভাগ র্যান্ড () বাস্তবায়নের কিছু সময় থাকে। অর্থাৎ কিছু বিশাল সংখ্যক কল করার পরে ক্রম পুনরাবৃত্তি হয়। rand() * rand()অর্ধবারে পুনরাবৃত্তিগুলির ক্রমটি তাই, এই অর্থে এটি "কম এলোমেলো"।

এছাড়াও, যত্ন সহকারে নির্মাণ ব্যতীত, এলোমেলো মানগুলিতে গাণিতিক সম্পাদনা কম এলোমেলো কারণ ঘটায়। উপরে একটি পোস্টার " rand()+ rand()+ rand()..." উদ্ধৃত হয়েছে (কে টাইমস, বলুন) যা প্রকৃতপক্ষে মানের মানগুলির পরিসরের গড় মানকে গুণিয়ে তুলবে rand()। (এটি অর্থের সাথে প্রতিযোগিতামূলক পদক্ষেপগুলির সাথে একটি এলোমেলো পদচারণা)

দৃre়তার জন্য অনুমান করুন যে আপনার র‌্যান্ড () ফাংশনটি [0,1) পরিসীমাতে অভিন্ন বিতরণ করা এলোমেলো প্রকৃত সংখ্যা প্রদান করে। (হ্যাঁ, এই উদাহরণটি অসীম নির্ভুলতার অনুমতি দেয় This এটি ফলাফলকে পরিবর্তন করবে না)) আপনি একটি নির্দিষ্ট ভাষা বেছে নেন নি এবং বিভিন্ন ভাষা বিভিন্ন কাজ করতে পারে তবে নিম্নলিখিত বিশ্লেষণটি র‌্যান্ডের কোনও অ-বিকৃত প্রয়োগের জন্য পরিবর্তনগুলি ধারণ করে ( )। পণ্যটি rand() * rand()[0,1) এর মধ্যেও রয়েছে তবে আর অভিন্নভাবে বিতরণ করা হয় না। প্রকৃতপক্ষে, পণ্যটি অন্তর হিসাবে [0,1 / 4) হিসাবে অন্তর্ভুক্ত হওয়ার সম্ভাবনা রয়েছে [1 / 4,1)। আরও গুণফল ফলাফলকে আরও শূন্যের দিকে ছুঁড়ে দেবে। এটি ফলাফলটিকে আরও অনুমানযোগ্য করে তোলে। বিস্তৃত স্ট্রোকগুলিতে, আরও অনুমানযোগ্য == কম এলোমেলো।

আনুষ্ঠানিকভাবে এলোমেলো ইনপুটটিতে অপারেশনের বেশ কয়েকটি ক্রমটি অদম্য এলোমেলোভাবে হবে, যা পূর্বাভাসের দিকে নিয়ে যায়। যত্ন সহকারে, কেউ এই সম্পত্তিটিকে কাটিয়ে উঠতে পারে, তবে তারপরে পাটিগণিতের সাথে সময় নষ্ট না করে বরং আপনি যে পরিসীমাটি চেয়েছিলেন ঠিক সেভাবেই অভিন্ন বিতরণ করা এলোমেলো সংখ্যা তৈরি করা আরও সহজ হত।


আমারও মনে হয়েছিল, এটি এলোমেলো জেনারেটরের সময়কালের মধ্য দিয়ে দ্বিগুণ হয়ে যাবে।
জ্যারেড আপডেটিকে

3
ক্রম দৈর্ঘ্যটি যদি এটি হয় তবে কেবল অর্ধেক কাটা হবে। যদি এটি বিজোড় হয় তবে আপনি r1 * r2, r3 * r4, ..., rn * r1, r2 * r3, r4 * r5 পাবেন এবং মোট দৈর্ঘ্য একই।
Jender

23

"এলোমেলো" বনাম "আরও র্যান্ডম" জিজ্ঞাসা করার মতো কিছুটা যা জিরো আরও শূন্য।

এই ক্ষেত্রে, randএকটি PRNG, তাই সম্পূর্ণরূপে এলোমেলো নয়। (আসলে, বীজটি জানা থাকলে যথেষ্ট অনুমানযোগ্য)। এটিকে অন্য মান দিয়ে গুণ করা এটিকে কমবেশি এলোমেলো করে না।

একটি সত্য ক্রিপ্টো-টাইপ আরএনজি আসলে এলোমেলো হয়ে যাবে। এবং কোনও ধরণের ক্রিয়াকলাপের মধ্য দিয়ে চলমান মানগুলি এতে আরও এনট্রপি যুক্ত করতে পারে না এবং সম্ভবত এন্ট্রপিকে সরিয়ে ফেলতে পারে, এটিকে আর এলোমেলো করে না।


3
দ্রষ্টব্য, প্রতিটি কলের সাথে আলাদা আলাদা মান ফেরত দেওয়ার পরে এটি স্কোয়ার হয় না। অন্য সব কিছু যদিও সঠিক।
ম্যাথু শার্লে

2
@ তিথনহ্যাকার: আপনার নিজের বিবরণ অনুসারে, ক্রমটি "1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10 1, 1,2,3,4,5,6,7,8,9,10 ... "এলোমেলো। এটি সমানভাবে বিতরণ করা হয়েছে, সমস্ত সংখ্যার ন্যায্য সুযোগ পেয়ে। কোনও পিকিং বা বাইসিং নেই। আপনি কি সত্যিই সেই ক্রমটিকে এলোমেলো মনে করেন ??? আপনার সংজ্ঞা পরিবর্তন করা দরকার। র্যান্ডম আউটপুট সম্পর্কে নয়, র্যান্ডম আউটপুট তৈরি করতে ব্যবহৃত প্রক্রিয়া সম্পর্কে ।
অ্যাবেলেঙ্কি

2
@ কার্টিনডগ: পাঠ্য-সংক্ষেপণ একই পরিমাণ এনট্রপি প্রকাশ করার জন্য প্রয়োজনীয় বিটের সংখ্যা হ্রাস করার সময় এনট্রপির স্তরটিকে একই রাখে।
কেনেট বেলেনকি

4
@ তিথনহ্যাকার, @ আবেলেনকি: এমনকি বিতরণও সহজ। এলোমেলো সংখ্যা জেনারেটরের ক্ষেত্রে যা গুরুত্বপূর্ণ তা হল এলোমেলো সংখ্যা জেনারেটরের রাজ্যে বিটের সংখ্যা। একটি শূন্য-রাষ্ট্রের এলোমেলো সংখ্যা জেনারেটর (উদাঃ 4, 4, 4, 4, 4, ...) সম্পূর্ণ অনুমানযোগ্য। একটি এককালীন প্যাডের যতগুলি মান এটি উত্পাদন করে তার পরিমাণ ততটুকু থাকে, সুতরাং এটি অনুমান করা অসম্ভব হয়ে পড়ে। দুটি পিএনআরজির একটি কনভলজেশন এনারোভিয়েন্স বিয়োগ করে উভয়ই এন্ট্রপির অনেক বিট সহ একটি পিএনআরজি তৈরি করবে।
কেনেট বেলেনকি

1
@ কেনট - ধন্যবাদ, আপনি আমার পক্ষে এটি অত্যন্ত সাফ করেছেন cleared @ লেবেলঙ্কি - শীতল, আমি আপনাকে এখনই পাই।
কার্টেনডগ

20

আপনি যে ধারণাটির সন্ধান করছেন তা হ'ল "এনট্রপি," বিটগুলির একটি স্ট্রিংয়ের ব্যাধি "ডিগ্রি"। "সর্বোচ্চ এনট্রপি" ধারণার দিক থেকে ধারণাটি বোঝা সহজ।

সর্বাধিক এনট্রপির সাথে বিটগুলির একটি স্ট্রিংয়ের আনুমানিক সংজ্ঞাটি হ'ল এটি বিটগুলির একটি সংক্ষিপ্ত স্ট্রিংয়ের ক্ষেত্রে সঠিকভাবে প্রকাশ করা যায় না (অর্থাত্ ছোট স্ট্রিংটিকে মূল স্ট্রিংয়ে ফিরে প্রসারিত করতে কিছু অ্যালগরিদম ব্যবহার করে)।

এলোমেলোতার সাথে সর্বাধিক এনট্রপির প্রাসঙ্গিকতা এই সত্য থেকে উদ্ভূত হয় যে আপনি যদি একটি সংখ্যা "এলোমেলোভাবে" বেছে নেন তবে আপনি অবশ্যই একটি সংখ্যা বেছে নেবেন যার বিট স্ট্রিং সর্বাধিক এনট্রপি থাকার কাছাকাছি, অর্থাৎ এটি সংকুচিত করা যায় না। এটি "র্যান্ডম" সংখ্যার বৈশিষ্ট্যটি কী তা আমাদের সেরা বোধ understanding

সুতরাং, আপনি একটি র্যান্ডম দুই নম্বর র্যান্ডম নমুনা যা র্যান্ডম হিসাবে "দুইবার" আউট করতে চান তাহলে, আপনি চাই কনক্যাটেনেট দুটি বিট স্ট্রিং একসঙ্গে। ব্যবহারিকভাবে, আপনি কেবলমাত্র দ্বিগুণ দৈর্ঘ্যের শব্দের উচ্চ এবং নিম্ন অংশগুলিতে নমুনাগুলি পূরণ করবেন।

আরও ব্যবহারিক নোটে, যদি আপনি নিজেকে একটি ক্রেপী র‌্যান্ড () দ্বারা স্যাডেল করে দেখতে পান তবে এটি কখনও কখনও একসাথে বেশ কয়েকটি নমুনা জোর করতে সহায়তা করতে পারে --- যদিও, যদি সত্যিকার অর্থে এটি ভেঙে যায় তবেও সেই পদ্ধতিটি সাহায্য করবে না।


2
আমি জোর এর মাধ্যমে এলোমেলো সংখ্যার প্রজন্মের কথা ভাবি নি, তবে আমি ধারণা করি আপনি ধারণাটি বেশ দূরে নিতে পারবেন ( en.wikedia.org/wiki/Mersenne_twister )! উত্তরের জন্য ধন্যবাদ.
গ্যাব্রিয়েল মিচেল

1
আমি এই উত্তরটি আঁকতে সত্যিই সংগ্রাম করছি ... স্ট্যাকওভারফ্লো / প্রশ্নগুলি / 95৯6464647878 / বোঝাপড়া-শ্রমতা / om এবং স্ট্যাকওভারফ্লো. com/ প্রশ্নগুলি / ৩৯ 64 64646478 / / বোঝাপড়া- ট্রেনডোমনেস / এ প্রদত্ত উত্তরের দ্বারা সর্বাধিক এনট্রপি পরাস্ত করা হয় না? । এই ক্ষেত্রে নির্বাচিত নম্বরটি সংকুচিত করা যাবে না তবে এলোমেলোভাবে তাদের কল করতে আপনাকে চাপ দেওয়া হবে।
কার্টেনডগ

1
+1 গ্রহণযোগ্য উত্তর হিসাবে সুন্দর, এটি আমার প্রিয়। যখন কম্পিউটারের কথা আসে তখন সর্বদা বিটগুলিতে ভাবেন - বাস্তবের দিক থেকে বিবেচনা করার চেষ্টা করার চেয়ে অনেক কম বিভ্রান্তিকর এবং আরও প্রাসঙ্গিক। (আমি আমার উত্তর লিখেছিলাম এবং তারপরে এটি একটি লক্ষ্য করেছি, সুতরাং আমার এইটির প্রসার ছাড়া আর কিছুই নয় - সম্ভবত কিছু এনট্রপি যুক্ত করা হবে)।
ড্যানিয়েল আরউইকার

1
@ কর্টিনডগ এক্সকেসিডি-র র্যান্ডম সংখ্যা 4বা বাইনারি 0100শূন্য বিটগুলিতে সংকুচিত হতে পারে। ডিকম্প্রেশন প্রোগ্রামটি কেবল '4' ফেরত আসবে। এটি এর চেয়ে কম এলোমেলোভাবে পায় না। ডিলবার্টের সমস্যাটি হ'ল আমরা জানি না যে আমরা এটি শূন্য বিটগুলিতে সংকোচিত করতে পারি (সর্বদা 'নয়' ফেরত দিয়ে সংক্ষেপণ)। এটি আটটি পাশাপাশি ফিরে আসতে পারে, তারপরে আমরা 1 বিটকে সংকোচন করতে পারি। সংক্ষিপ্তকরণ: 0-> নয়টি, 1-> আটটি। আমরা 1 এলোমেলো বিট হবে।
ইশতার

14

গৃহীত উত্তরটি বেশ সুন্দর, তবে আপনার প্রশ্নের উত্তর দেওয়ার আরও একটি উপায় রয়েছে। প্যাচিডার্মপঞ্চারের উত্তর ইতিমধ্যে এই বিকল্প পদ্ধতির গ্রহণ করেছে এবং আমি এটিকে আরও কিছুটা প্রসারিত করতে চলেছি।

তথ্য তত্ত্ব সম্পর্কে ভাবার সবচেয়ে সহজ উপায় হ'ল তথ্যের ক্ষুদ্রতম এককের পরিপ্রেক্ষিতে, এককটি।

সি স্ট্যান্ডার্ড লাইব্রেরিতে rand()0 থেকে পরিসীমাটিতে পূর্ণসংখ্যা ফেরত দেয় RAND_MAX, এমন একটি সীমা যা প্ল্যাটফর্মের উপর নির্ভর করে আলাদাভাবে সংজ্ঞায়িত করা যেতে পারে। ধরুন RAND_MAXহিসাবে সংজ্ঞায়িত করা ঘটবে 2^n - 1যেখানে nকিছু পূর্ণসংখ্যা (এই Microsoft এর বাস্তবায়ন, যেখানে ক্ষেত্রে হতে হবে n15)। তারপরে আমরা বলব যে একটি ভাল বাস্তবায়ন nতথ্যের বিটগুলি ফিরিয়ে দেবে ।

কল্পনা করুন যে rand()এক বিটের মান সন্ধান করার জন্য একটি মুদ্রা উল্টিয়ে এবং এটিকে 15 বিটের ব্যাচ না হওয়া পর্যন্ত পুনরাবৃত্তি করে এলোমেলো সংখ্যা তৈরি করে। তারপরে বিটগুলি স্বতন্ত্র (কোনও এক বিটের মান একই ব্যাচের অন্যান্য বিটের সম্ভাবনার উপর প্রভাব ফেলবে না) একটি নির্দিষ্ট মান রয়েছে। সুতরাং স্বতন্ত্রভাবে বিবেচিত প্রতিটি বিট অন্তর্ভুক্ত 0 এবং 1 এর মধ্যে একটি এলোমেলো সংখ্যার মতো এবং এটি পরিসীমাটির উপর "সমানভাবে বিতরণ" হয় (সম্ভবত 0 হিসাবে 1 হতে পারে)।

বিটের স্বাধীনতা নিশ্চিত করে যে বিটের ব্যাচগুলি প্রতিনিধিত্ব করে এমন সংখ্যাগুলিও তাদের পরিসীমাতে সমানভাবে বিতরণ করা হবে। এটি স্বজ্ঞাতভাবে সুস্পষ্ট: যদি 15 বিট থাকে তবে অনুমোদিত ব্যাপ্তিটি শূন্য থেকে 2^15 - 1= 32767 that

010110101110010

এবং যদি বিটগুলি স্বাধীন হয় তবে অন্য কোনও প্যাটার্নের চেয়ে কোনও প্যাটার্ন হওয়ার সম্ভাবনা বেশি। সুতরাং পরিসীমাতে সমস্ত সম্ভাব্য সংখ্যা সমান সম্ভাবনা। এবং তাই বিপরীতটি সত্য: যদি rand()সমানভাবে বিতরণ করা পূর্ণসংখ্যার উত্পাদন হয়, তবে সেই সংখ্যাগুলি স্বাধীন বিট দিয়ে তৈরি।

সুতরাং rand()বিট তৈরির জন্য একটি উত্পাদন লাইন হিসাবে মনে করুন , যা কেবল তাদের স্বেচ্ছাসেবী আকারের ব্যাচে তাদের পরিবেশন করার জন্য ঘটে। আপনি যদি আকার পছন্দ না করেন, ব্যাচগুলি পৃথক বিটগুলিতে বিভক্ত করুন এবং তারপরে আপনার পছন্দ মতো পরিমাণে আবার একত্রিত করুন (যদিও আপনার যদি একটি নির্দিষ্ট পরিসরের প্রয়োজন হয় যা 2 এর শক্তি নয় তবে আপনার সংখ্যাগুলি সঙ্কুচিত করা দরকার , এবং এটি করার সবচেয়ে সহজ উপায় হ'ল ভাসমান স্থানে রূপান্তর করা)।

আপনার আসল পরামর্শটিতে প্রত্যাবর্তন করে, ধরুন আপনি 15 এর ব্যাচ থেকে 30 এর ব্যাচে যেতে চান, rand()প্রথম সংখ্যাটি জিজ্ঞাসা করতে পারেন , এটি 15 টি জায়গায় বিট শিফট করুন, তারপরে rand()এটিতে আরও একটি যুক্ত করুন। rand()এমনকি কোনও বিতরণকে বিরক্ত না করে দুটি কল একত্রিত করার এক উপায় । এটি কেবলমাত্র কাজ করে কারণ যেখানে আপনি তথ্যের বিট রাখেন সে জায়গাগুলির মধ্যে কোনও ওভারল্যাপ নেই।

rand()ধ্রুবক দ্বারা গুণিত করে এটির পরিসীমা "প্রসারিত" থেকে খুব আলাদা । উদাহরণস্বরূপ, আপনি যদি নিজের পরিসীমা rand()দ্বিগুণ করতে চান তবে দুটি দিয়ে গুণ করতে পারেন - তবে এখন আপনি কেবল কখনও সমান সংখ্যা পাবেন এবং কখনও বিজোড় সংখ্যা পাবেন না! এটি ঠিক কোনও মসৃণ বিতরণ নয় এবং অ্যাপ্লিকেশনটির উপর নির্ভর করে একটি গুরুতর সমস্যা হতে পারে, যেমন রৌলেটের মতো গেমটি সম্ভবত বেআইনী / এমনকি বেটকে অনুমতি দেয়। (বিটের দিক দিয়ে চিন্তা করে আপনি সেই ভুলটি স্বজ্ঞাতভাবে এড়াতে চাইবেন, কারণ আপনি বুঝতে পেরেছেন যে দুটি দ্বারা গুণ করা একত্রে বিটকে বামে স্থানান্তরিত করা (বৃহত্তর তাত্পর্য)) শূন্যের সাথে ফাঁক পূরণ করা সমান। সুতরাং স্পষ্টতই তথ্যের পরিমাণ একই - এটি কেবল সামান্য সরানো হয়েছে))

সংখ্যা রেঞ্জের এ জাতীয় ফাঁকগুলি ভাসমান পয়েন্ট সংখ্যা অ্যাপ্লিকেশনগুলিতে গ্রীপ করা যায় না কারণ ভাসমান পয়েন্টের রেঞ্জগুলির মধ্যে অন্তর্নিহিত ফাঁক থাকে যা কেবল উপস্থাপন করা যায় না: প্রতিটি দু'জনের প্রতিনিধিত্বমূলক ভাসমানের ফাঁক ব্যবস্থায় অসীম অদৃশ্য সংখ্যার অস্তিত্ব রয়েছে পয়েন্ট সংখ্যা! সুতরাং আমাদের কেবল ফাঁক দিয়ে বাঁচতে শিখতে হবে।

যেমনটি অন্যরা সতর্ক করেছে, এই অঞ্চলে স্বজ্ঞাততা ঝুঁকিপূর্ণ, বিশেষত কারণ গণিতবিদরা প্রকৃত সংখ্যার প্রলুব্ধাকে প্রতিহত করতে পারেন না, যা ভয়ানকভাবে বিভ্রান্তিমূলক বিষয়গুলিকে ভ্রান্তরূপে এবং বিপরীতে বিভ্রান্তিতে পরিপূর্ণ করে তোলে।

তবে কমপক্ষে যদি আপনি এটি বিটের শর্তাদি মনে করেন তবে আপনার স্বজ্ঞাততা আপনাকে আরও খানিকটা এগিয়ে নিয়ে যেতে পারে। বিটগুলি সত্যই সহজ - এমনকি কম্পিউটারগুলি সেগুলি বুঝতে পারে।


3
+1: আসলে, পুরো (গাণিতিক) পূর্ণসংখ্যার সংখ্যার চেয়ে যে কোনও দুটি আইইইই ডাবল স্পষ্টতা ভাসমানের মধ্যে আরও বেশি নম্বর রয়েছে।
ডোনাল ফেলো

13

অন্যরা যেমন বলেছে, সহজ সংক্ষিপ্ত উত্তরটি হ'ল না, এটি বেশি এলোমেলো নয়, তবে এটি বিতরণকে পরিবর্তন করে।

ধরুন আপনি পাশা খেলা খেলছেন। আপনার কিছু সম্পূর্ণ ন্যায্য, এলোমেলো পাশা আছে। ডাই রোলগুলি কি "আরও এলোমেলো" হবে যদি প্রতিটি ডাই রোলের আগে, আপনি প্রথমে একটি পাত্রে দুটি ডাইস রেখেছিলেন, চারপাশে ঝাঁকুনি দিয়েছিলেন, এলোমেলোভাবে একটি ডাইস বাছাই করেছেন, এবং তার পরে এটি ঘূর্ণায়মান? স্পষ্টত এটি কোন পার্থক্য করতে হবে। উভয় পাশা যদি এলোমেলো সংখ্যা দেয়, তবে এলোমেলোভাবে দুটি পাশ্বের মধ্যে একটি বেছে নেওয়া কোনও তাত্পর্য সৃষ্টি করবে না। যে কোনও উপায়ে আপনি পর্যাপ্ত সংখ্যক রোল বিতরণ করেও 1 এবং 6 এর মধ্যে একটি এলোমেলো নম্বর পাবেন।

আমি মনে করি বাস্তব জীবনে এই পদ্ধতিটি কার্যকর হতে পারে যদি আপনি সন্দেহ করেন যে পাশা ন্যায্য নয়। যদি, বলুন, পাশাটি সামান্য ভারসাম্যহীন তাই একজন 1/6 সময় প্রায় 1 বার দেওয়ার প্রবণতা দেখায় এবং অন্যটি অস্বাভাবিকভাবে 6 বার দেওয়ার ঝোঁক দেয়, তবে এলোমেলোভাবে দুজনের মধ্যে নির্বাচন করা পক্ষপাতটিকে অস্পষ্ট করে রাখে। (যদিও এই ক্ষেত্রে, 1 এবং 6 এখনও 2, 3, 4 এবং 5 এরও বেশি আসবে Well আচ্ছা, আমি ভারসাম্যের প্রকৃতির উপর নির্ভর করে অনুমান করি))

এলোমেলো অনেক সংজ্ঞা আছে। এলোমেলো সিরিজের একটি সংজ্ঞা হ'ল এটি একটি এলোমেলো প্রক্রিয়া দ্বারা উত্পাদিত সংখ্যার একটি সিরিজ। এই সংজ্ঞা অনুসারে, আমি যদি 5 বার ফর্স ডাই রোল করি এবং 2, 4, 3, 2, 5 নম্বর পাই তবে এটি একটি এলোমেলো সিরিজ। আমি যদি সেই একই মেলাটি আরও 5 বার রোল করি এবং 1, 1, 1, 1, 1 পাই, তবে এটিও একটি এলোমেলো সিরিজ।

বেশ কয়েকটি পোস্টার উল্লেখ করেছে যে একটি কম্পিউটারে র্যান্ডম ফাংশনগুলি সত্যই এলোমেলো নয় বরং ছদ্ম-এলোমেলো, এবং যদি আপনি অ্যালগরিদম এবং বীজ জানেন তবে সেগুলি সম্পূর্ণ অনুমানযোগ্য। এটি সত্য, তবে বেশিরভাগ সময় সম্পূর্ণ অপ্রাসঙ্গিক। যদি আমি কার্ডের ডেকে ডুবিয়ে রাখি এবং তারপরে একবারে সেগুলিকে একটি করে করে ফেলি তবে এটি একটি এলোমেলো সিরিজ হওয়া উচিত। কেউ যদি কার্ডগুলিতে উঁকি দেয় তবে ফলাফলটি সম্পূর্ণ অনুমানযোগ্য হবে তবে এলোমেলোতার বেশিরভাগ সংজ্ঞা অনুসারে এটি এটিকে কম এলোমেলো করে তুলবে না। যদি সিরিজটি এলোমেলোতার পরিসংখ্যানগত পরীক্ষাগুলি পাস করে তবে আমি কার্ডগুলিতে উঁকি দিয়েছিলে সেই সত্যটি পরিবর্তন হবে না। অনুশীলনে, আমরা যদি পরবর্তী কার্ডটি অনুমান করার মতো দক্ষতার জন্য যদি প্রচুর পরিমাণে জুয়া খেলছি, তবে আপনি কার্ডগুলিতে উপনীত হওয়া বিষয়টি অত্যন্ত প্রাসঙ্গিক। সিস্টেমের কার্যকারিতা পরীক্ষা করার জন্য যদি আমরা সিরিজটি আমাদের ওয়েবসাইটে দর্শকদের মেনু পিকগুলি অনুকরণ করতে ব্যবহার করি, তবে আপনি যে বিষয়টি দেখেছিলেন তা মোটেই কোনও পার্থক্য করবে না। (যতক্ষণ না আপনি এই জ্ঞানের সুবিধা নিতে প্রোগ্রামটি পরিবর্তন করেন না))

সম্পাদনা

আমি মনে করি না যে মন্টি হল সমস্যাটির বিষয়ে আমি আমার মন্তব্যে কোনও প্রতিক্রিয়া জানাতে পারি, তাই আমি আমার উত্তর আপডেট করব।

যারা বেলিসারিয়াস লিঙ্কটি পড়েনি, তাদের মূল কথাটি: একটি গেম শো প্রতিযোগীকে 3 টি দরজার পছন্দ দেওয়া হয়। একের পিছনে মূল্যবান পুরষ্কার, অন্যের পিছনে মূল্যহীন কিছু। সে দরজা তুলে ধরে # 1। এটি বিজয়ী বা হারানো কিনা তা প্রকাশ করার আগে, হোস্টটি এটি হারানো কিনা তা প্রকাশ করার জন্য # 3 দরজা খোলে। তারপরে তিনি প্রতিযোগীকে # 2 দরজায় স্যুইচ করার সুযোগ দেয়। প্রতিযোগীর এই করা উচিত নাকি?

উত্তর, যা অনেক লোকের অন্তর্নিহিতাকে ক্ষুব্ধ করে, তা হ'ল তার পরিবর্তন করা উচিত। তার আসল বাছাইটি বিজয়ী হওয়ার সম্ভাবনাটি 1/3, অন্য দরজাটি বিজয়ী হ'ল 2/3। আমার প্রাথমিক স্বজ্ঞাততা এবং অন্যান্য অনেক লোকের সাথে, এটি হ'ল যে স্যুইচিংয়ে কোনও লাভ হবে না, বৈষম্যগুলি সবেমাত্র 50:50 এ পরিবর্তিত হয়েছে।

সর্বোপরি, ধরুন যে কেউ হোস্টের হারানোর দরজা খোলার ঠিক পরে টিভিতে স্যুইচ করেছে। সেই ব্যক্তিটি দুটি বন্ধ দরজা দেখতে পাবেন। তিনি গেমের প্রকৃতি জানেন বলে ধরে নিয়ে তিনি বলবেন যে প্রতিটি দরজা পুরষ্কারটি লুকিয়ে রাখার একটি 1/2 সুযোগ রয়েছে। কীভাবে দর্শকের পক্ষে প্রতিক্রিয়াগুলি 1/2: 1/2 হতে পারে যখন প্রতিযোগীর পক্ষে প্রতিক্রিয়াগুলি 1/3: 2/3?

আমার অন্তর্নিহিততাটি আকারে ফেলার জন্য আমাকে সত্যিই এটি সম্পর্কে ভাবতে হয়েছিল। এটিতে একটি হ্যান্ডেল পেতে, বুঝতে হবে যে আমরা যখন এই জাতীয় কোনও সমস্যায় সম্ভাবনার কথা বলি তখন আমাদের অর্থ, আপনি যে সম্ভাব্যতা অর্পণ করেছেন তা উপলভ্য তথ্য প্রদত্ত। পুরস্কারটি পিছনে রেখেছিলেন এমন ক্রু সদস্যের কাছে, বলুন, দরজা # 1, পুরষ্কার # 1 এর পিছনে পুরস্কারের সম্ভাবনাটি 100% এবং অন্য দুটি দরজার একটিরও পিছনে থাকার সম্ভাবনা শূন্য।

ক্রু মেম্বারের প্রতিক্রিয়া প্রতিযোগীর মতবিরোধের চেয়ে আলাদা কারণ কারণ তিনি জানেন যে প্রতিযোগী এমন কিছু নয় যা তিনি পুরস্কারটি কোন দরজার পিছনে রেখেছিলেন doesn't অনুরূপভাবে, প্রতিযোগীর প্রতিক্রিয়া দর্শকের প্রতিক্রিয়াগুলির চেয়ে পৃথক কারণ তিনি এমন কিছু জানেন যা দর্শক না করেন, যথা, তিনি প্রথমে কোন দরজাটি বেছে নিয়েছিলেন। এটি অপ্রাসঙ্গিক নয়, কারণ কোন দরজাটি খুলতে হবে তার হোস্টের পছন্দ এলোমেলো নয়। প্রতিযোগীর বাছাই করা দরজাটি তিনি খুলবেন না এবং পুরস্কারটি লুকিয়ে থাকা দরজাটি তিনি খুলবেন না। যদি এটি একই দরজা হয় তবে এটি তার দুটি পছন্দ ছেড়ে দেয়। যদি তারা বিভিন্ন দরজা হয়, যে শুধুমাত্র একটি ছেড়ে।

তাহলে আমরা কীভাবে 1/3 এবং 2/3 নিয়ে আসব? প্রতিযোগী যখন মূলত একটি দরজা বাছাই করে তখন তার বিজয়ীকে বাছাই করার 1/3 সুযোগ ছিল। আমি মনে করি যে অনেক কিছুই সুস্পষ্ট। তার মানে একটি 2/3 সুযোগ ছিল যে অন্য দরজার একটি বিজয়ী। হোস্ট যদি তাকে কোনও অতিরিক্ত তথ্য না দিয়ে স্যুইচ করার সুযোগ করে দেয় তবে কোনও লাভ হবে না। আবার, এটি সুস্পষ্ট হওয়া উচিত। তবে এটির দিকে নজর দেওয়ার একটি উপায় বলতে হবে যে 2/3 এর সম্ভাবনা রয়েছে যে তিনি স্যুইচ করে জিতবেন। তবে তার কাছে দুটি বিকল্প রয়েছে। সুতরাং প্রত্যেকের বিজয়ী হওয়ার 2 = 1/3 সুযোগ দ্বারা বিভক্ত মাত্র 2/3 রয়েছে যা তার আসল বাছাইয়ের চেয়ে ভাল আর নয়। অবশ্যই আমরা ইতিমধ্যে চূড়ান্ত ফলাফল জানতাম, এটি এটি অন্যভাবে গণনা করে।

তবে এখন হোস্ট প্রকাশ করে যে এই দুটি নির্বাচনের মধ্যে একটিতে বিজয়ী নয়। 2/3 সুযোগের যে কোনও দরজাটি তিনি বেছে নেন নি সে বিজয়ী, তিনি এখন জানেন যে 2 বিকল্পগুলির মধ্যে 1 টি এটি নয়। অন্য হতে পারে বা নাও হতে পারে। সুতরাং তার আর 2/3 বিভাজন নেই 2 দিয়ে খোলা দরজার জন্য তার শূন্য এবং বন্ধ দরজার জন্য 2/3 রয়েছে।


খুব ভাল উপমা! আমি অনুমান করি এটি একটি খুব সহজ সরল ইংরেজী ব্যাখ্যা, এবং অন্য অনেকের বিপরীতে, আপনি আসলে আমার প্রশ্নের উত্তর দিয়েছেন :)
ট্রুফা

@ ট্রাফা @ জায়ে ঘটনা এবং এলোমেলোতার সম্ভাব্য পূর্ব-জ্ঞানের মধ্যে বিভ্রান্তি খুব সাধারণ বিষয়। আমাকে এক মহিলার সম্পর্কে এই আকর্ষণীয় গল্পটি আপনাদের সাথে শেয়ার করতে দিন যিনি একটি সমস্যা সমাধান করেছেন এবং একাডেমির কয়েকজন উন্নত গণিতবিদদের জন্য লজ্জার গাদা দিয়েছেন। তারা পরে আফসোস করার জন্য অনেক কিছুই বলেছিল (যেমন "আপনি ভুল করেছেন, তবে ইতিবাচক দিকটি দেখুন those এই সমস্ত পিএইচডি যদি ভুল হয় তবে দেশটি খুব মারাত্মক সমস্যায় পড়ত।") গল্পটি এখানে আপনার বিবেচনার সাথে সম্পর্কিত ... উপভোগ করুন! marilynvossavant.com/articles/gameshow.html
ডাঃ বেলিসেরিয়াস

@ বিলেসারিয়াস হ্যাঁ আমি বললাম ব্ল্যাকজ্যাক 21 :) শুধু মজা করছি আমি আপনাকে পয়েন্ট দেই!
ট্রুফা 23

@ বিলেসারিয়াস বিটিডাব্লু কখনও পায় নি যে এটি এখনই আরেকবার চেষ্টা করবো!
ট্রুফা

@Trufa এবং এখানে মেরিলিন এর বিবৃতি একাডেমিক প্রতিক্রিয়া দেখানোর সময় একটি নিবন্ধ query.nytimes.com/gst/... (খুব খুব মজা)
ডঃ belisarius

11

আপনার একটি সাধারণ মুদ্রা ফ্লিপ সমস্যা আছে তা বিবেচনা করুন যেখানে এমনকি মাথা হিসাবে বিবেচনা করা হয় এবং বিজোড় লেজ হিসাবে বিবেচিত হয়। যৌক্তিক বাস্তবায়নটি হ'ল:

rand() mod 2

একটি বৃহত পর্যাপ্ত বিতরণ জুড়ে, এমনকি সংখ্যার সংখ্যাটি বিজোড় সংখ্যার সমান হওয়া উচিত।

এবার সামান্য সাম্প্রতিক বিবেচনা করুন:

rand() * rand() mod 2

ফলাফলগুলির মধ্যে একটি যদি সমান হয় তবে পুরো ফলাফলটি সমান হওয়া উচিত। 4 টি সম্ভাব্য ফলাফল বিবেচনা করুন (এমনকি * এমনকি = এমনকি, এমনকি * বিজোড় = সমান, বিজোড় * এমনকি = এমনকি, বিজোড় * বিজোড় = বিজোড় )ও বিবেচনা করুন। এখন, যথেষ্ট পরিমাণে বিতরণ করার পরে, উত্তরটি এমনকি সময়ের 75% হওয়া উচিত।

আমি যদি আপনি থাকতাম তবে আমি বাজি ধরতাম।

এই মন্তব্যটি এলোমেলোতার গাণিতিক বৈশিষ্ট্যগুলির আলোচনার চেয়ে আপনার পদ্ধতির ভিত্তিতে কাস্টম এলোমেলো ক্রিয়াকলাপটি কেন প্রয়োগ করা উচিত হবে না তার আরও ব্যাখ্যা।


1
সতর্ক থাকুন! rand()%2খুব এলোমেলো নাও হতে পারে; এটি সত্যিই লো বিটের এলোমেলোতার উপর নির্ভর করে এবং কিছু পিআরএনজি সেভাবে খুব ভাল হয় না। (অবশ্যই, কিছু ভাষায় আপনি একটি ভাসমান-পয়েন্ট ফলাফল পেয়ে থাকেন rand()তাই আপনি এটি সেভাবে একেবারেই করতে পারবেন না ...)
ডোনাল ফেলো

10

আপনার এলোমেলো সংখ্যার সংমিশ্রণে কী ঘটবে তা নিয়ে সন্দেহ থাকলে আপনি পরিসংখ্যানতত্ত্বের যে পাঠগুলি শিখেছেন তা ব্যবহার করতে পারেন।

ওপি-র পরিস্থিতিতে তিনি জানতে চান যে এক্স * এক্স = এক্স ^ 2 এর ফলাফল কী যেখানে এক্স ইউনিফর্ম [0,1] এর সাথে বিতরণ করা এলোমেলো পরিবর্তনশীল is আমরা সিডিএফ কৌশলটি ব্যবহার করব যেহেতু এটি কেবল এক থেকে এক ম্যাপিং।

এক্স-ইউনিফর্ম [0,1] যেহেতু এটি সিডিএফ হ'ল: চ এক্স (এক্স) = 1 আমরা রূপান্তর চাই Y <- X ^ 2 এভাবে y = x ^ 2 বিপরীত x (y) সন্ধান করুন: sqrt (y) = x এটি আমাদের y এর ফাংশন হিসাবে এক্স দেয়। এরপরে, ডেরিভেটিভ ডিএক্স / ডাই সন্ধান করুন: d / dy (sqrt (y)) = 1 / (2 স্কয়ার্ট (y))

Y এর বিতরণটি দেওয়া হয়েছে: f Y (y) = f X (x (y)) | dx / dy | = 1 / (2 স্কয়ার্ট (y))

আমরা এখনও সম্পন্ন করি নি, 0 এর সাথে আমাদের ডঃ ডোমেনটি পেতে হবে <0 = x <1, 0 <= x ^ 2 <1 সুতরাং ওয়াইটি [0, 1) এর মধ্যে রয়েছে। আপনি যদি Y এর পিডিএফ প্রকৃতপক্ষে পিডিএফ কিনা তা পরীক্ষা করতে চান তবে এটি ডোমেনের সাথে একীভূত করুন: 1 / (2 বর্গক্ষেত্র (y)) 0 থেকে 1 পর্যন্ত একীভূত করুন এবং প্রকৃতপক্ষে, এটি 1 হিসাবে পপ আপ হবে এবং এছাড়াও, এর আকারটি লক্ষ্য করুন বলেন ফাংশন দেখতে কি বিশ্বাসঘাতক পোস্ট।

যেমন এক্স 1 + এক্স 2 + ... + এক্স এন , (যেখানে এক্স আই।) এর মতো জিনিস ~ ইউনিফর্ম [0,1]) এর আমরা কেবলমাত্র কেন্দ্রীয় সীমাবদ্ধ তত্ত্বের কাছে আবেদন করতে পারি যা এমন মুহুর্তগুলিতে উপস্থিত এমন কোনও বিতরণের জন্য কাজ করে। এ কারণেই জেড-টেস্টটি আসলে বিদ্যমান।

ফলাফল পিডিএফ নির্ধারণের অন্যান্য কৌশলগুলির মধ্যে জ্যাকবিয়ান ট্রান্সফর্মেশন (যা সিডিএফ প্রযুক্তির সাধারণ সংস্করণ) এবং এমজিএফ কৌশল অন্তর্ভুক্ত।

সম্পাদনা: একটি স্পষ্টতা হিসাবে, নোট করুন যে আমি ফলস্বরূপ রূপান্তরের বিতরণের কথা বলছি এবং এর এলোমেলোতা নয় । এটি আসলে একটি পৃথক আলোচনার জন্য। এছাড়াও আমি আসলে যা অর্জন করেছি তা ছিল (র্যান্ড ()) ^ 2 এর জন্য। র‌্যান্ড () * র‌্যান্ড () এর জন্য এটি আরও জটিল, যা কোনও অবস্থাতেই কোনও প্রকারের অভিন্ন বিতরণে আসে না।


9

এটি একেবারে সুস্পষ্ট নয়, তবে rand()সাধারণত এটির চেয়ে বেশি এলোমেলো rand()*rand()। গুরুত্বপূর্ণটি হ'ল এটি বেশিরভাগ ব্যবহারের জন্য খুব গুরুত্বপূর্ণ নয়।

তবে প্রথমত, তারা বিভিন্ন বিতরণ উত্পাদন করে। এটি যদি আপনি চান তবে এটি কোনও সমস্যা নয় তবে এটি কোনও বিষয় নয়। আপনার যদি কোনও নির্দিষ্ট বিতরণ দরকার হয় তবে পুরো "যা আরও বেশি এলোমেলো" প্রশ্নটিকে উপেক্ষা করুন। তাহলে rand()আরও এলোমেলো কেন ?

কেন মূল rand()আরও এলোমেলো (অনুমানের অধীনে যে এটি পরিসীমা [০.১.১] সহ ভাসমান-পয়েন্ট র্যান্ডম সংখ্যার উত্পাদন করছে) এটি হ'ল আপনি যখন ম্যান্টিসার প্রচুর তথ্যের সাথে দুটি এফপি সংখ্যাকে একসাথে গুন করেন, আপনি পান শেষে তথ্য কিছু ক্ষতি; আইআইইই ডাবল-স্পষ্টতা ভাসমান পর্যায়ে পর্যাপ্ত পরিমাণে দুটি তথ্যই নেই যা দুটি আইইইই ডাবল-স্পষ্টতা ফ্লোটে সমানভাবে এলোমেলোভাবে [২.০] থেকে নির্বাচিত হয়েছিল, এবং সেই অতিরিক্ত তথ্যের বিটগুলি হারিয়ে গেছে। অবশ্যই, এটি এতটা গুরুত্বপূর্ণ নয় যেহেতু আপনি (সম্ভবত) সেই তথ্য ব্যবহার করছেন না, তবে ক্ষতিটি আসল। আপনি কোন বিতরণ উত্পাদন করেন তাও গুরুত্বপূর্ণ নয় (যেমন, আপনি সংমিশ্রণটি করতে কোন অপারেশনটি ব্যবহার করেন)। এই এলোমেলো সংখ্যার প্রত্যেকটিতে 52 টি বিট এলোমেলো তথ্য রয়েছে - এটি '

এলোমেলো সংখ্যার বেশিরভাগ ব্যবহার এমনকি এলোমেলো উত্স হিসাবে উপলব্ধ যতটা এলোমেলোতার কাছাকাছি ব্যবহার করে না। একটি ভাল পিআরএনজি পান এবং এটি সম্পর্কে খুব বেশি চিন্তা করবেন না। ("ধার্মিকতার" স্তরটি আপনি এটি দিয়ে যা করছেন তার উপর নির্ভর করে; মন্টি কার্লো সিমুলেশন বা ক্রিপ্টোগ্রাফি করার সময় আপনাকে সতর্কতা অবলম্বন করতে হবে, তবে অন্যথায় আপনি সম্ভবত স্ট্যান্ডার্ড পিআরএনজি ব্যবহার করতে পারেন যা সাধারণত খুব দ্রুত হয়))


1
এই উত্তরটি সত্যই বেলিসারিয়াসের দুর্দান্ত একটির সাথে মিলিয়ে পড়া দরকার; তারা সমস্যার বিভিন্ন দিক কভার করে।
ডোনাল ফেলো

7

ভাসমান র্যান্ডমগুলি সাধারণভাবে, একটি অ্যালগরিদম ভিত্তিতে হয় যা শূন্য এবং একটি নির্দিষ্ট ব্যাপ্তির মধ্যে একটি পূর্ণসংখ্যার উত্পাদন করে। যেমন, র‌্যান্ড () * র‌্যান্ড () ব্যবহার করে, আপনি মূলত ইনট্র্যান্ড () * ইনট_রেন্ড () / র্যান্ড_ম্যাক্স ^ 2 বলছেন - যার অর্থ আপনি কোনও মূল সংখ্যা / র্যান্ড_ম্যাক্স ^ 2 বাদ দিচ্ছেন।

যা এলোমেলোভাবে বিতরণ উল্লেখযোগ্যভাবে পরিবর্তন করে।

র্যান্ড () বেশিরভাগ সিস্টেমে অভিন্নভাবে বিতরণ করা হয় এবং সঠিকভাবে বীজযুক্ত হলে ভবিষ্যদ্বাণী করা কঠিন। এটি গাণিতিক করার কোনও বিশেষ কারণ না থাকলে (যেমন, প্রয়োজনীয় বক্ররেখার বিতরণকে রূপদান করা) যদি না তা ব্যবহার করুন।


@ বিলেসারিয়াস: এটি কেবলমাত্র যদি কেস 1 এলোমেলো প্রক্রিয়াটির সম্ভাব্য ফলাফল হয়।
জোরিস মেজ

উত্তরগুলি খুঁজে পাওয়ার আগে আমাকে দীর্ঘ উত্তরগুলি পড়তে হয়েছিল। আপনি একটি স্পষ্ট সমস্যা বর্ণনা করেছেন: ফলাফলের স্থান (সম্ভাব্য মানের সংখ্যা) এর rand()*rand()ফলাফলের স্থানের চেয়ে কম rand()- যেহেতু এটি প্রাথমিক সংখ্যা বাদ দেয়। আমার ভোট পান ...
ফ্লোরিস

7

আপনার কম্পিউটারের আর্কিটেকচারের উপর নির্ভর করে সংখ্যাগুলির সংখ্যা আরও ছোট করা হবে solution

যদি আপনার কম্পিউটারের প্রদর্শনটি 16 ডিজিট দেখায় rand()তবে 0.1234567890123 এক সেকেন্ড rand(), 0.1234567890123 দ্বারা গুণিত হয়েছে , 0.0152415 এমন কিছু দেবে যা আপনি যদি পরীক্ষাটি 10 ​​^ 14 বার পুনরাবৃত্তি করেন তবে আপনি অবশ্যই কম সমাধান খুঁজে পেতে পারেন।


3

এগুলির বেশিরভাগ বিতরণ ঘটে কারণ আপনাকে এলোমেলো সংখ্যা সীমাবদ্ধ করতে বা স্বাভাবিক করতে হবে।

আমরা এটিকে সমস্ত ধনাত্মক হতে, পরিসরের মধ্যে ফিট হতে এবং এমনকি নির্ধারিত ভেরিয়েবল প্রকারের জন্য মেমরির আকারের সীমাবদ্ধতার মধ্যে মাপসই করা স্বাভাবিক করি।

অন্য কথায়, যেহেতু আমাদের 0 এবং X এর মধ্যে র্যান্ডম কল সীমাবদ্ধ করতে হবে (এক্সটি আমাদের ভেরিয়েবলের আকার সীমা হতে পারে) আমাদের 0 এবং X এর মধ্যে "র্যান্ডম" সংখ্যার একটি গ্রুপ থাকবে will

এখন আপনি যখন অন্য এলোমেলো সংখ্যায় এলোমেলো সংখ্যা যোগ করবেন তখন যোগফলটি 0 এবং 2X এর মধ্যে কোথাও হবে ... এটি প্রান্ত পয়েন্টগুলি থেকে দূরে থাকা মানগুলিকে আঁকিয়ে দেয় (দুটি ছোট সংখ্যার একসাথে যোগ করার সম্ভাবনা এবং দুটি বড় সংখ্যা একসাথে খুব কম হলে আপনার বৃহত্তর পরিসরে দুটি এলোমেলো সংখ্যা রয়েছে)।

আপনি যে সংখ্যাটি শূন্যের কাছাকাছি এসেছিলেন সে সম্পর্কে ভাবুন এবং আপনি এটিকে অন্য এলোমেলো সংখ্যার সাথে যুক্ত করুন এটি অবশ্যই বড় হবে এবং 0 থেকে দূরে থাকবে (এটি বৃহত সংখ্যার ক্ষেত্রে সত্য হবে পাশাপাশি দুটি বড় সংখ্যার সম্ভাবনাও নেই) (এক্স এর কাছাকাছি সংখ্যা) দুবার র‌্যান্ডম ফাংশন দ্বারা ফিরে এসেছিল।

এখন আপনি যদি negativeণাত্মক সংখ্যা এবং ধনাত্মক সংখ্যা (এটিকে শূন্য অক্ষ জুড়ে সমানভাবে বিস্তৃত) দিয়ে এলোমেলো পদ্ধতিটি সেটআপ করতে থাকেন তবে এটি আর হবে না।

উদাহরণস্বরূপ বলুন RandomReal({-x, x}, 50000, .01)তাহলে আপনি নেতিবাচক একটি সংখ্যার পক্ষে সংখ্যার এমনকি বিতরণ পাবেন এবং যদি আপনি একসাথে এলোমেলো সংখ্যার যোগ করতে চান তবে তারা তাদের "এলোমেলোতা" বজায় রাখবেন।

Random() * Random()নেতিবাচক থেকে ইতিবাচক সময় নিয়ে কী হবে তা আমি এখন নিশ্চিত নই ... এটি দেখার জন্য একটি আকর্ষণীয় গ্রাফ হবে ... তবে আমাকে এখনই লেখার কোডে ফিরে যেতে হবে। :-P


2
  1. এর চেয়ে বেশি এলোমেলো কিছু নেই। এটি হয় এলোমেলো বা না। র্যান্ডম মানে "ভবিষ্যদ্বাণী করা কঠিন"। এর অর্থ অ-নিরস্তকর নয়। এলোমেলো () এবং এলোমেলো () * এলোমেলো () উভয়ই এলোমেলোভাবে যদি এলোমেলো () এলোমেলো হয়। এলোমেলোভাবে যতদূর যায় বন্টন অপ্রাসঙ্গিক। যদি অ-অভিন্ন বিতরণ ঘটে তবে এর অর্থ হ'ল কিছু মান অন্যদের চেয়ে বেশি হয়; তারা এখনও অপ্রত্যাশিত।

  2. যেহেতু সিউডো-এলোমেলোতা জড়িত, তাই সংখ্যাগুলি অনেকটাই নির্বিচারক। তবে সম্ভাব্যতা মডেল এবং সিমুলেশনে সিউডো-এলোমেলো প্রায়শই যথেষ্ট। এটি বেশ সুপরিচিত যে সিউডো-এলোমেলো সংখ্যা জেনারেটরকে জটিল করে তোলা কেবল বিশ্লেষণ করা কঠিন করে তোলে। এলোমেলোভাবে উন্নতি করার সম্ভাবনা নেই; এটি প্রায়শই এটি পরিসংখ্যান পরীক্ষায় ব্যর্থ হয়।

  3. এলোমেলো সংখ্যার কাঙ্ক্ষিত বৈশিষ্ট্যগুলি গুরুত্বপূর্ণ: পুনরাবৃত্তিযোগ্যতা এবং পুনরুত্পাদনযোগ্যতা, পরিসংখ্যানের এলোমেলোতা, (সাধারণত) অভিন্নভাবে বিতরণ করা হয় এবং একটি বৃহত সময় কয়েক হয়।

  4. এলোমেলো সংখ্যায় রূপান্তর সম্পর্কিত: কেউ বলেছে যে দুটি বা ততোধিক সমানভাবে বিতরণের যোগফল একটি সাধারণ বিতরণে ফলাফল। এটি অ্যাডিটিভ কেন্দ্রীয় সীমাবদ্ধ উপপাদ্য। যতক্ষণ না সমস্ত বিতরণ স্বতন্ত্র এবং অভিন্ন হয় উত্স বন্টন নির্বিশেষে এটি প্রযোজ্য। দ্যবর্ধককেন্দ্রীয় সীমাবদ্ধতা উপপাদ্য বলেছেন দুটি বা ততোধিক স্বতন্ত্র এবং স্বতঃস্ফূর্তভাবে বিতরণ করা এলোমেলো ভেরিয়েবলের পণ্য লগমনরমাল। অন্য কারও তৈরি করা গ্রাফটি তাত্পর্যপূর্ণ দেখায়, তবে এটি সত্যিই লগনরমাল। সুতরাং এলোমেলো () * এলোমেলোভাবে () লগনে সাধারণভাবে বিতরণ করা হয় (যদিও এটি একই স্ট্রিম থেকে সংখ্যা টানা হওয়ায় এটি স্বতন্ত্র নাও হতে পারে)। এটি কিছু অ্যাপ্লিকেশনগুলিতে কাম্য হতে পারে। তবে সাধারণত একটি এলোমেলো সংখ্যা উত্পন্ন করা এবং এটিকে একটি সাধারণভাবে বিতরণ করা সংখ্যায় রূপান্তর করা ভাল। এলোমেলো () * এলোমেলো () বিশ্লেষণ করা কঠিন হতে পারে।

আরও তথ্যের জন্য আমার বই www.perfororama.org এ পরামর্শ করুন। বইটি নির্মাণাধীন, তবে প্রাসঙ্গিক উপাদান রয়েছে। নোট করুন যে অধ্যায় এবং বিভাগের নম্বরগুলি সময়ের সাথে সাথে পরিবর্তন হতে পারে। অধ্যায় 8 (সম্ভাব্যতা তত্ত্ব) - বিভাগ 8.3.1 এবং 8.3.3, অধ্যায় 10 (এলোমেলো সংখ্যা)।


1

কোলমোগোরভ জটিলতা ব্যবহার করে আমরা এলোমেলোতা সম্পর্কিত দুটি সংখ্যার তুলনা করতে পারি যদি সংখ্যার ক্রম সংকুচিত করা যায় না, তবে এটি সবচেয়ে এলোমেলো আমরা এই দৈর্ঘ্যে পৌঁছাতে পারি ... আমি জানি যে এই ধরণের পরিমাপটি তাত্ত্বিক আরও বেশি বিকল্প ...


1

আসলে, যখন তুমি কি মনে কর এটি সম্পর্কে rand() * rand()হয় কম বেশী এলোমেলো rand()। কারণটা এখানে.

মূলত, সমান সংখ্যার মতো বিজোড় সংখ্যা রয়েছে। এবং বলছেন যে 0.04325 বিজোড়, এবং 0.388 এর মতো সমান এবং 0.4 সমান এবং 0.15 টি বিজোড়,

এর অর্থ rand()এটি একটি সমান বা বিজোড় দশমিক হওয়ার সমান সুযোগ রয়েছে

অন্যদিকে, rand() * rand()এর প্রতিকূলতাকে কিছুটা পৃথকভাবে স্ট্যাক করা হয়েছে। চল বলি:

double a = rand();
double b = rand();
double c = a * b;

aএবং bউভয়েরই সমান বা বিজোড় হওয়ার 50% অগ্রণী সুযোগ রয়েছে। জানে যে

  • এমনকি * এমনকি = সম
  • এমনকি * বিজোড় = সমান
  • বিজোড় * বিজোড় = বিজোড়
  • বিজোড় * এমনকি = সম

মানে যে একটি 75% সম্ভাবনা যে cএমনকি, যখন শুধুমাত্র একটি 25% সম্ভাবনা এটা বিশ্রী, মান উপার্জন rand() * rand()চেয়ে বেশি আন্দাজের rand(), অতএব কম র্যান্ডম।


rand()সাধারণত 0 এবং 1 এর মধ্যে একটি সংখ্যা দেয় যা এটি এমনকি অদ্ভুত কিনা তা নিয়ে কথা বলার অর্থ কী?
তিপিম্ম

1
প্রকৃতপক্ষে, 0.2*0.2=0.04যা এই পদ্ধতির সাথে একটি মৌলিক ত্রুটি বোঝায়: দুটি ডাবলের 53 বিটকে গুণ করলে ফলাফলটি প্রায় 100 বিট দেবে। তবে এই বিটগুলির শেষ অর্ধেক বাতিল করা হবে। সুতরাং আপনি যখন 1 এর সাথে দুটি তাত্পর্যপূর্ণ বিট হিসাবে দুটি ডাবল নেন, আপনি তাদের পণ্যের নূন্যতম উল্লেখযোগ্য বিট সম্পর্কে কিছুই বলতে পারবেন না।
তেপীম্ম

অথবা, অন্যভাবে বলতে গেলে, আপনি ধরে নিয়েছেন যে "এমনকি" এবং "বিজোড়" rand()এর সংজ্ঞা যা বিতরণের জন্য অর্থবোধ করে তা "এমনকি" এবং "বিজোড়" এর সংজ্ঞা হিসাবে একইরূপে যা বিতরণের অর্থ দেয়? এর rand()*rand()। যদি এটি না হয়, এই যুক্তি ব্যর্থ। এটি পূর্ণসংখ্যার জন্য সত্য, তবে এগুলি পূর্ণসংখ্যা নয়।
ডেভিড শোয়ার্জ

0

একটি লিনিয়ার প্রতিক্রিয়া শিফট রেজিস্টার (এলএফএসআর) ব্যবহার করুন যা আদিম বহুবর্ষ প্রয়োগ করে।

ফলাফলটি 2 p n সিউডো-এলোমেলো সংখ্যার ক্রম হবে, অর্থাত্ ক্রমটি পুনরাবৃত্তি করছে না যেখানে এল এলএফএসআর বিটের সংখ্যা .... যার ফলে অভিন্ন বিতরণ হবে।

http://en.wikipedia.org/wiki/Linear_feedback_shift_register http://www.xilinx.com/support/docamentation/application_notes/xapp052.pdf

আপনার কম্পিউটারের ঘড়ির মাইক্রোসেস্কের উপর ভিত্তি করে একটি "এলোমেলো" বীজ ব্যবহার করুন বা আপনার ফাইল সিস্টেমে কিছু ধারাবাহিকভাবে পরিবর্তিত ডেটার উপর এমডি 5 ফলাফলের একটি উপসেট হতে পারে।

উদাহরণস্বরূপ, একটি 32-বিট এলএফএসআর একটি প্রদত্ত বীজ দিয়ে শুরু করে ক্রমানুসারে 2 ^ 32 স্বতন্ত্র সংখ্যা উত্পন্ন করবে (কোনও মতো 2 নয়)। ক্রমটি সর্বদা একই ক্রমে থাকবে তবে প্রারম্ভিক পয়েন্টটি ভিন্ন বীজের জন্য আলাদা (স্পষ্টতই) হবে। সুতরাং, যদি সম্ভবত বীজের মধ্যে পুনরাবৃত্তি ক্রম কোনও সমস্যা না হয় তবে এটি একটি ভাল পছন্দ হতে পারে।

আমি 128-বিট এলএফএসআর এর বীজ ব্যবহার করে হার্ডওয়্যার সিমুলেটরগুলিতে এলোমেলো পরীক্ষা তৈরি করতে ব্যবহার করেছি যা ক্রমাগত সিস্টেমের ডেটা পরিবর্তন করার ক্ষেত্রে এমডি 5 ফলাফল।


0

এটির rand()মধ্যে একটি সংখ্যা ফেরত ধরে নিলে [0, 1)তা স্পষ্ট যে rand() * rand()0-এর দিকে পক্ষপাতদুষ্ট হবে is এটি কারণ xকোনও সংখ্যার দ্বারা সংখ্যাটি গুণ করলে [0, 1)তার চেয়ে কম সংখ্যার ফলাফল হয় x। এখানে আরও 10000 টি এলোমেলো সংখ্যার বিতরণ :

যদি এর rand()মধ্যে একটি পূর্ণসংখ্যা ফেরত [x, y]দেয় তবে আপনার নীচের বিতরণ হবে। বিজোড় বনাম সম মানগুলির সংখ্যা লক্ষ করুন:


-1

ঠিক আছে, তাই আমি এলোমেলো সংখ্যার জেনারেটর তৈরি এবং ব্যবহার করে অন্যের উত্তরগুলির পরিপূরক হিসাবে কিছু মান যুক্ত করার চেষ্টা করব।

এলোমেলো সংখ্যা জেনারেটর এমন একটি ডিভাইস (খুব সাধারণ অর্থে) যার একাধিক বৈশিষ্ট্য রয়েছে যা একটি উদ্দেশ্য অনুসারে পরিবর্তন করতে পারে। তাদের মধ্যে কিছু (আমার কাছ থেকে) হলেন:

  • এন্ট্রপি: শ্যানন এন্ট্রপির মতো
  • বিতরণ: পরিসংখ্যান বিতরণ (poisson, স্বাভাবিক, ইত্যাদি)
  • প্রকার: সংখ্যার উত্স কী (অ্যালগোরিদম, প্রাকৃতিক ইভেন্ট, সংমিশ্রণ ইত্যাদি) এবং প্রয়োগিত অ্যালগরিদম।
  • দক্ষতা: দ্রুততা বা কার্যকরকরণের জটিলতা।
  • প্যাটার্নস: পর্যায়ক্রম, ক্রম, রান, ইত্যাদি
  • এবং সম্ভবত আরও ...

এখানে বেশিরভাগ উত্তরে, বিতরণটি আগ্রহের মূল বিষয়, তবে মিশ্রণ এবং মিলিয়ে ফাংশন এবং পরামিতিগুলি দ্বারা, আপনি এলোমেলো সংখ্যা উত্পন্ন করার নতুন উপায় তৈরি করেন যাগুলির বিভিন্ন বৈশিষ্ট্য থাকবে যার মধ্যে কিছু মূল্যায়ন প্রথম নজরে স্পষ্ট নাও হতে পারে।


-1

এটিকে দেখানো সহজ যে দুটি এলোমেলো সংখ্যার যোগফলটি এলোমেলোভাবে নয়। কল্পনা করুন আপনার একটি 6 পার্শ্বযুক্ত ডাই অ্যান্ড রোল রয়েছে। প্রতিটি সংখ্যায় উপস্থিত হওয়ার 1/6 সুযোগ রয়েছে। এখন বলুন আপনার কাছে দুটি ডাইস ছিল এবং ফলাফলটির সংক্ষিপ্তসার। এই অঙ্কগুলির বিতরণ 1/12 নয়। কেন? কারণ নির্দিষ্ট সংখ্যা অন্যের চেয়ে বেশি উপস্থিত হয়। সেগুলির একাধিক পার্টিশন রয়েছে। উদাহরণস্বরূপ 2 নম্বরটি 1 + 1 এর যোগফল তবে 7 টি 3 + 4 বা 4 + 3 বা 5 + 2 ইত্যাদি দ্বারা গঠিত হতে পারে ... সুতরাং এটির সামনে আসার বড় সম্ভাবনা রয়েছে।

অতএব, ট্রান্সফর্ম প্রয়োগ করা, এক্ষেত্রে এলোমেলো ফাংশনের সাথে সংযোজন এটিকে আরও এলোমেলো করে না, বা অগত্যা এলোমেলোতা সংরক্ষণ করে। উপরের ডাইসের ক্ষেত্রে, বিতরণটি স্কুড হয় 7 এবং তাই কম এলোমেলো।


-1

যেমন অন্যরা ইতিমধ্যে চিহ্নিত করেছে, এই প্রশ্নের উত্তর দেওয়া শক্ত কারণ আমাদের প্রত্যেকের মাথায় এলোমেলোতার নিজস্ব চিত্র রয়েছে

এ কারণেই, আমি এলোমেলোতার আরও ভাল ধারণা পেতে আপনাকে কিছুটা সময় নেওয়ার এবং এই সাইটের মাধ্যমে পড়ার জন্য আমি অত্যন্ত পরামর্শ দিচ্ছি:

আসল প্রশ্ন ফিরে পেতে। এই পদটিতে কম বা বেশি এলোমেলো কিছু নেই:

উভয়ই এলোমেলো প্রদর্শিত !

উভয় ক্ষেত্রে - কেবল র্যান্ড () বা র্যান্ড () * র‌্যান্ড () - পরিস্থিতি একই: কয়েক বিলিয়ন সংখ্যার পরে ক্রমটি পুনরাবৃত্তি হবে (!) । এটি পর্যবেক্ষকের কাছে এলোমেলো প্রদর্শিত হয় , কারণ তিনি পুরো ক্রমটি জানেন না, তবে কম্পিউটারের কোনও সত্যিকারের এলোমেলো উত্স নেই - সুতরাং তিনিও এলোমেলোতা তৈরি করতে পারবেন না।

যেমন: আবহাওয়া কি এলোমেলো? আবহাওয়া এলোমেলো কিনা তা নির্ধারণ করার জন্য আমাদের পর্যাপ্ত সেন্সর বা জ্ঞান নেই।


-2

উত্তরটি এটি নির্ভর করবে, আশা করি র‌্যান্ড () * র‌্যান্ড () র‌্যান্ড () এর চেয়ে বেশি এলোমেলো হতে পারে তবে হিসাবে:

  • উভয় উত্তরগুলি আপনার মানের বিট আকারের উপর নির্ভর করে
  • যে বেশিরভাগ ক্ষেত্রে আপনি ছদ্ম-র্যান্ডম অ্যালগরিদমের উপর নির্ভর করে উত্পন্ন করেন (যা বেশিরভাগই এমন একটি সংখ্যক জেনারেটর যা আপনার কম্পিউটারের ঘড়ির উপর নির্ভর করে, এবং এতটা এলোমেলো নয়)।
  • আপনার কোডটি আরও পঠনযোগ্য করে তুলুন (এবং এ জাতীয় মন্ত্রে র্যান্ডম কিছু র‌্যান্ডম ভুডো godশ্বরের প্রার্থনা করবেন না)।

ঠিক আছে, আপনি যদি উপরেরগুলির মধ্যে কোনওটি পরীক্ষা করেন তবে আমি আপনাকে "সরল র‌্যান্ড ()" এ যাওয়ার পরামর্শ দিই। কারণ আপনার কোডটি আরও পঠনযোগ্য হবে (নিজেকে ভাল জিজ্ঞাসা করবে না কেন আপনি এটি লিখেন কেন, কারণ ... ভাল ... 2 সেকেন্ডের বেশি), বজায় রাখা সহজ (যদি আপনি একটি সুপার_র্যান্ড দিয়ে র্যান্ড ফাংশনটি প্রতিস্থাপন করতে চান))

আপনি যদি আরও ভাল এলোমেলো চান তবে আমি আপনাকে এটি এমন কোনও উত্স থেকে স্ট্রিম করার পরামর্শ দিচ্ছি যা পর্যাপ্ত শব্দ দেয় ( রেডিও স্ট্যাটিক ), এবং তারপরে একটি সরল rand()যথেষ্ট হওয়া উচিত।

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