क्या आप पाई का उपयोग क्रूड रैंडम नंबर जनरेटर के रूप में कर सकते हैं?


30

मैंने हाल ही में math.SE पर यह प्रश्न देखा। यह मुझे सोच में पड़ गया। क्या पाई को क्रूड रैंडम नंबर जनरेटर के रूप में इस्तेमाल किया जा सकता है? मेरा मतलब है कि परिणाम अच्छी तरह से ज्ञात हैं (अब तक पाई की गणना कब तक की गई है?) लेकिन, एक समय में 1 अंक लेने पर पाई काफी यादृच्छिक लगती है।

क्या इसका कोई मतलब है?


ये रैंडम नंबर कहां इस्तेमाल होने वाले हैं?
NullUserException

2
सैद्धांतिक रूप से यह हो सकता है लेकिन यह वर्तमान विधियों की तुलना में शायद कम इष्टतम होगा। बस उस पर वृत्ति लेकिन ऐसा लगता है कि यादृच्छिक पूल इस तरह से कम ओवरहेड के साथ बड़ा है।
रिग

@NullUserException सुनिश्चित नहीं हैं ... मैं बस सोच रहा था कि क्या उनका उपयोग सभी पर किया जा सकता है। मुझे लगता है कि यह निश्चित रूप से क्रिप्टोग्राफी के लिए नहीं होगा हालांकि
अर्लज़

3
@FrustratedWithFormsDesigner - इसके एंट्री पैकेज का हिस्सा है। यह एक वर्ग के भीतर उत्कीर्ण एक सर्कल के क्षेत्र की गणना करने के लिए यादृच्छिक संख्याओं का उपयोग करता है और उसी से, एक पाई की गणना कर सकता है। यादृच्छिक संख्याओं के रूप में पाई के बिट्स का उपयोग करना, पीआई की गणना करने के लिए उस डेटा का उपयोग करने के लिए एक निश्चित लालित्य है।

1
@FrustratedWithFormsDesigner ईएनटी बाइट्स की गुच्छा के छद्म अनियमितता विश्लेषण करने के लिए कोड का एक सूट है। इसके भीतर एक परीक्षण पाई की गणना और वास्तविक मूल्य के खिलाफ यादृच्छिक गणना की तुलना करने के लिए एक मोंटे कार्लो है कि यह कितना यादृच्छिक है।

जवाबों:


50

पाई के द्विआधारी मूल्य को प्राप्त करने के लिए http://www.befria.nu/elias/pi/binpi.html से खुदाई करें (ताकि दशमलव अंकों का उपयोग करने के बजाय बाइट में परिवर्तित करना आसान हो) और फिर इसे प्रवेश के माध्यम से चलाएं मैं बाइट्स के यादृच्छिक वितरण के विश्लेषण के लिए निम्नलिखित प्राप्त करता हूं:

एंट्री = 7.954093 बिट प्रति बाइट।

इष्टतम संपीड़न 4096 बाइट फ़ाइल के आकार को 0 प्रतिशत तक कम कर देगा।

4096 नमूनों के लिए ची वर्ग वितरण 253.00 है, और बेतरतीब ढंग से इस मूल्य को 52.36 प्रतिशत से अधिक होगा।

डेटा बाइट्स के अंकगणितीय माध्य मान 126.6736 (127.5 = यादृच्छिक) है।

पाई के लिए मोंटे कार्लो का मूल्य 3.120234604 (त्रुटि 0.68 प्रतिशत) है।

सीरियल सहसंबंध गुणांक 0.028195 (पूरी तरह से असंबंधित = 0.0) है।

तो हां, यादृच्छिक डेटा के लिए पाई का उपयोग करने से आपको काफी यादृच्छिक डेटा मिलेगा ... यह महसूस करते हुए कि यह यादृच्छिक डेटा है।


ऊपर एक टिप्पणी से ...

आप जो कर रहे हैं, उसके आधार पर, लेकिन मुझे लगता है कि आप किसी भी अभाज्य संख्या के वर्गमूल के दशमलव को यादृच्छिक संख्या जनरेटर के रूप में उपयोग कर सकते हैं। इन्हें कम से कम समान रूप से अंक वितरित करने चाहिए। - पैक्सिनम

इसलिए, मैंने समस्याओं के समान सेट को अंडरटेक करने के लिए द्विआधारी में 2 के वर्गमूल की गणना की। वुल्फराम के Iteration का उपयोग करते हुए मैंने एक सरल पर्ल स्क्रिप्ट लिखी

#!/usr/bin/perl
use strict;
use Math::BigInt;

my $u = Math::BigInt->new("2");
my $v = Math::BigInt->new("0");
my $i = 0;

while(1) {
    my $unew;
    my $vnew;

    if($u->bcmp($v) != 1) { # $u <= $v
        $unew = $u->bmul(4);
        $vnew = $v->bmul(2);
    } else {
        $unew = ($u->bsub($v)->bsub(1))->bmul(4);
        $vnew = ($v->badd(2))->bmul(2);
    }   

    $v = $vnew;
    $u = $unew;

    #print $i,"  ",$v,"\n";
    if($i++ > 10000) { last; }
}

open (BITS,"> bits.txt");
print BITS $v->as_bin();
close(BITS);

पहले 10 के लिए यह रनिंग A095804 से मेल खाता था इसलिए मुझे विश्वास था कि मेरे पास अनुक्रम है। पहले अंक के बाद रखे गए बाइनरी पॉइंट के साथ बाइनरी में लिखे जाने पर मान v n 2 के वर्गमूल का एक अनुमान देता है।

इस द्विआधारी डेटा के खिलाफ दर्ज का उपयोग कर उत्पादन:

Entropy = 7.840501 bits per byte.

Optimum compression would reduce the size
of this 1251 byte file by 1 percent.

Chi square distribution for 1251 samples is 277.84, and randomly
would exceed this value 15.58 percent of the times.

Arithmetic mean value of data bytes is 130.0616 (127.5 = random).
Monte Carlo value for Pi is 3.153846154 (error 0.39 percent).
Serial correlation coefficient is -0.045767 (totally uncorrelated = 0.0).

बिल्कुल उसी प्रकार का उत्तर जिसकी मुझे तलाश थी। मुझे नहीं पता कि इस प्रकार के सभी
सामानों

भले ही संख्या वितरण काफी यादृच्छिक हो, लेकिन क्या आपको इसका एक हिस्सा बेतरतीब ढंग से चुनने का तरीका नहीं खोजना है?
ब्लमर

1
@ बेलर नं। यादृच्छिकता को संख्याओं के अनुक्रम पर मापा जाता है। पाई अंकों के अनुक्रम को यादृच्छिक कहा जाता है। देखें en.wikipedia.org/wiki/Statistical_randomness
साइमन Bergot

11
बिल्कुल सही। और क्योंकि यह अच्छी तरह से ज्ञात यादृच्छिक डेटा है, तो आप कभी भी क्रिप्टोग्राफ़िक उद्देश्यों के लिए उपयोग करने की हिम्मत नहीं करते हैं।
फाल्कन

3
"अच्छी तरह से ज्ञात यादृच्छिक डेटा" के लिए +1। यदि आपको यादृच्छिक डेटा की आवश्यकता होती है जिसे कोई अनुमान नहीं लगा सकता है, तो पीआई आपके लिए नहीं है, अगर किसी कारण के लिए बस यादृच्छिक संख्याओं का एक गुच्छा चाहिए, तो यह ठीक काम करता है।
जोर्मेनो

5

ठीक है, एक यादृच्छिक संख्या जनरेटर के अन्य गुणों के बीच, आप शायद यह एक सामान्य संख्या चाहते हैं । और गणित में कई उत्तर। आपके प्रश्न ने प्रेरित किया कि वर्तमान में पाई को सामान्य माना जाता है, लेकिन यह साबित नहीं हुआ है।


2

ऐसा जनरेटर एक छद्म संख्या जनरेटर होगा, अर्थात एक ही बीज दिया जाएगा, परिणाम हमेशा एक ही होगा। यह कहा जा रहा है, अधिकांश रूपरेखाओं में, जब आप मानक यादृच्छिक संख्या जनरेटर का उपयोग करते हैं, तो छद्म यादृच्छिक होने का एक ही मुद्दा है।

अंकों का वितरण मानक यादृच्छिक संख्या जनरेटर से काफी मिलता-जुलता प्रतीत होता है, इसलिए be के अंकों का उपयोग साधारण यादृच्छिक संख्या पीढ़ी परिदृश्यों के लिए किया जा सकता है।

मुद्दा यह है कि एल्गोरिथ्म साधारण यादृच्छिक संख्या जनरेटर की तुलना में संभवतः बहुत धीमा होगा, इसलिए यह व्यवहार में बहुत उपयोगी नहीं है।


True मेरा मानना ​​है कि यह सच है, लेकिन इसका कोई प्रमाण नहीं है। बड़ी संख्या के आधार पर तुलना करना दिलचस्प (और जटिल नहीं) होगा।


5
@NullUserException: नहीं, कुछ यादृच्छिक संख्या जनरेटर एन्ट्रापी के स्रोत का उपयोग करते हैं। यह या तो विशेष हार्डवेयर के माध्यम से किया जा सकता है ( random.org द्वारा लिया गया दृष्टिकोण ) या एंट्रोपी के मौजूदा स्रोतों का उपयोग करके (मौजूदा हार्डवेयर सेंसर के भीतर औसत दर्जे का उतार-चढ़ाव, कुछ प्रकार के उपयोगकर्ता इंटरैक्शन, कुछ प्रकार के प्रदर्शन परीक्षणों में सूक्ष्म भिन्नताएं, आदि)। )।
ब्रायन

1
@NullUserException: क्रिप्टोग्राफिक रूप से सुरक्षित PRNG हैं, जो अभी भी छद्म यादृच्छिक हैं। फिर वास्तविक आरएनजी हैं जो वास्तविक दुनिया से इनपुट पर आधारित हैं: रेडियोधर्मी क्षय, शोर, आदि
आर्सेनी मूरज़ेंको

2
@ मेनमा लेकिन फिर भी, रेडियोधर्मी क्षय की अनियमितता, वायुमंडलीय शोर, उपयोगकर्ता इनपुट से व्युत्पन्न, आदि बहस योग्य है। सिर्फ इसलिए कि हम एक पैटर्न को नहीं पहचानते हैं इसका मतलब यह नहीं है कि कोई मौजूद नहीं है।
NullUserException

1
@NullUserException: पिछले साल Colbeck / Renner ने एक पेपर प्रकाशित किया था, जो यह साबित करने के लिए प्रेरित करता है: "क्वांटम सिद्धांत के कोई विस्तार से भविष्य कहनेवाला शक्ति में सुधार नहीं हो सकता है।" यह मानते हुए कि वहाँ एंट्रॉपी का एक स्रोत हो सकता है जो वास्तव में अप्रत्याशित है, बजाय केवल भविष्यवाणी करने के लिए संभव है।
ब्रायन

1
@ मेनमा - आप अभी भी यादृच्छिकता के लिए गणितीय परीक्षण करेंगे। भले ही अंतर्निहित भौतिकी यादृच्छिक है (हमारे ज्ञान का सबसे अच्छा करने के लिए) इसका मतलब यह नहीं है कि माप है। सभी प्रकार के डिटेक्टरों का वास्तविक दुनिया में बहुत 'रोचक' व्यवहार है
मार्टिन बेकेट

2

पाई के अंकों की यादृच्छिकता (या उस मामले के लिए किसी अन्य अनुक्रम) को तथाकथित 'बैटरी परीक्षणों' द्वारा परीक्षण किया जा सकता है। एक लोकप्रिय बैटरी परीक्षण जॉर्ज मार्साग्लिया का डेथर्ड बैटरी टेस्ट है । वहाँ भी है NIST विशेष प्रकाशन 800-22 लो और निहारना - - एक लाख से अधिक बिट के लिए अनुकरणीय है कि इस तरह के परीक्षणों के एक नंबर और, भौतिक स्थिरांक की एक संख्या के लिए इन परीक्षणों को लागू करने सहित के परिणामों का वर्णन है। Pi का परिणाम रिपोर्ट के परिशिष्ट B में दिया गया है और यह इस प्रकार है:

Statistical Test                            P-value
Frequency                                   0.578211
Block Frequency (m = 128)                   0.380615
Cusum-Forward                               0.628308
Cusum-Reverse                               0.663369
Runs                                        0.419268
Long Runs of Ones                           0.024390
Rank                                        0.083553
Spectral DFT                                0.010186
Non-overlapping Templates (m = 9, B = 000000001)          0.165757
Overlapping Templates (m = 9)               0.296897
Universal                                   0.669012
Approximate Entropy (m = 10)                0.361595
Random Excursions (x = +1)                  0.844143
Random Excursions Variant (x = -1)          0.760966
Linear Complexity (M = 500)                 0.255475
Serial (m = 16, 2m∇Ψ )                      0.143005

क्या पीआई एक अच्छा यादृच्छिक अनुक्रम जनरेटर है? उपरोक्त परिणामों को देखें (या बाएं कॉलम चर का अर्थ खोजें, यदि आपको कोई मतलब नहीं है कि उनका क्या मतलब है), और जांचें कि क्या यह आपकी आवश्यकता को पूरा करता है।


1
डाइहार्ड के लिए मुझे पढ़ा गया यह कहता है कि इसे लगभग 10-12 मेगाबाइट बाइनरी डेटा की जरूरत है (सबसे अच्छा मुझे मिल सकता है जो 32 किलोबाइट है)। यदि आप इसे एएससीआई डेटा के खिलाफ चलाते हैं, तो परीक्षण इस बात से दूर होगा कि आवेदन क्या उम्मीद कर रहा है।

मेरा उत्तर ओपी प्रश्न और गणित पर मूल प्रश्न के लिए था। ईएसई - जिनमें से किसी ने भी असीसी बनाम बाइनरी डेटा या नमूने की लंबाई के बारे में कुछ भी उल्लेख नहीं किया है। एक बड़े पर्याप्त नमूना सेट के बिना, किसी भी अनुक्रम के सांख्यिकीय यादृच्छिकता को कैसे निर्धारित किया जा सकता है?
sm535
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.