Generowanie posortowanych losowych int bez sortowania? Na)

Właśnie patrzyłem na pytanie dotyczące golfagenerowanie posortowanej listy 100 losowych liczb całkowitych. Jednak w mojej głowie pojawił się pomysł, aby zamiast tego wygenerować listę dodatnich delt i po prostu dodawać je do bieżącej sumy, a więc:

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

W rzeczywistości używałbyś pływaków, a następnie normalizowałeś je, aby pasowały do ​​górnej granicy i okrągłej, ale efekt jest taki sam.

Chociaż nie byłby to kod krótszy, z pewnością byłby szybszy bez kroku sortowania. Ale to, czego nie mam prawdziwej racji, to:Czy wynikowy rozkład liczb całkowitych byłby taki sam, jak wygenerowanie 100 losowych liczb całkowitych z jednorodnie rozproszonej funkcji gęstości prawdopodobieństwa?

Edytuj: przykładowy skrypt:

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)

Czyj wynik (rzuty kostką) był:

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

AKTUALIZACJA: Odpowiedź Aloka iKomentarz Dana Dyera wskazać, że za pomocąrozkład wykładniczy ponieważ delty dałyby jednolity rozkład liczb całkowitych.

questionAnswers(8)

yourAnswerToTheQuestion