2016-09-24 4 views
-2

Ich bin ziemlich neu zu Python, so dass ich nicht viele Dinge weiß. können also sagen, dass ich dieses Stück Code bekamrandom.randrange scheint nicht ganz zufällig

for i in range(10000): 
n = random.randrange(1, 1000**20) 
ar.append(n) 
print(n) 

Die kleinste Zahl i aus dem 10000 erhalten, ist immer 3-4 Ziffern kleiner als 1000^20 in diesem speziellen Beispiel die kleinsten Zahlen sind

2428677832187681074801010996569419611537028033553060588 
8134740394131686305349870676240657821649938786653774568 
44697837467174999512466010709212980674765975179401904173 
50027463313770628365294401742988068945162971582587075902 
61592865033437278850861444506927272718324998780980391309 
71066003554034577228599139472327583180914625767704664425 
90125804190638177118373078542499530049455096499902511032 
100371114393629537113796511778272151802547292271926376588 

Ich habe mehrere Bereiche mehrmals versucht und jedes Mal, wenn ich die gleichen Ergebnisse bekomme. Vielleicht mache ich etwas falsch?

+2

Ist es so seltsam, dass etwa 1 von 10.000 der generierten Werte ungefähr 1/10.000 der Größe des Maximalwerts entspricht? – TigerhawkT3

+1

Da 10.000 10 ** 4 ist, sehe ich nicht, wie das ist überraschend. –

+1

Warum berechnen Sie nicht die Wahrscheinlichkeit, diese Werte zu sehen, im Gegensatz zu kleineren? –

Antwort

1

Okay, also lassen Sie uns kleine Zahlen verwenden, um dies klar zu veranschaulichen.

Angenommen, Sie wählen eine Zufallszahl von 1 bis einschließlich 100 aus.

Wie viele 1-stellige Nummern gibt es? 9, von 1 bis 9. Für 2 Ziffern ist es von 10 bis 99, 90 Nummern. Für 3 Ziffern ist es nur 1, 100. Da es eine zufällige Auswahl ist, ist die Wahrscheinlichkeit, eine dieser 100 (9 + 90 + 9) Zahlen zu wählen, gleich, und es sollte intuitiv klar sein, dass es 1/100 ist. Aber da es 90 zweistellige Zahlen gibt, ist die Wahrscheinlichkeit, eine zweistellige Zahl zu wählen, 90/100 oder 9/10. Für 1-stellige Zahlen ist es 9/100 und für die einzige 3-stellige Zahl ist es 1/100.

Ich hoffe, dass die Frage beantwortet.

+0

oh ich habe es nie so gedacht. Vielen Dank! – harambe