Generieren von sortierten zufälligen Ints ohne die Sortierung? Auf)

Hab mir gerade eine Code Golf Frage über angeschautGenerieren einer sortierten Liste von 100 zufälligen ganzen Zahlen. Was mir jedoch in den Sinn kam, war die Idee, stattdessen eine Liste positiver Deltas zu generieren und diese einfach zu einer laufenden Summe hinzuzufügen.

deltas: 1 3 2  7  2
ints:   1 4 6 13 15

Tatsächlich würden Sie Floats verwenden und dann normalisieren, um eine Obergrenze zu erreichen, und runden, aber der Effekt ist der gleiche.

Obwohl es keinen kürzeren Code geben würde, wäre es ohne den Sortierschritt sicherlich schneller. Aber das, was ich nicht wirklich im Griff habe, ist Folgendes:Wäre die resultierende Verteilung von ganzen Zahlen die gleiche wie die Erzeugung von 100 zufälligen ganzen Zahlen aus einer gleichmäßig verteilten Wahrscheinlichkeitsdichtefunktion?

Edit: Ein Beispielskript:

import random,sys
running = 0
max = 1000
deltas = [random.random() for i in range(0,11)]
floats = []
for d in deltas:
    running += d
    floats.append(running)
upper = floats.pop()
ints = [int(round(f/upper*max)) for f in floats]
print(ints)

Wessen Output (fairer Würfelwurf) war:

[24, 71, 133, 261, 308, 347, 499, 543, 722, 852]

AKTUALISIEREN: Aloks Antwort undDan Dyers Kommentar darauf hinweisen, dass mit einemExponentialverteilung denn die Deltas würden eine gleichmäßige Verteilung der ganzen Zahlen ergeben.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage