Algoritme & struktura të dhënash

Fisher-Yates shuffle

Në shqip: Përzierja Fisher-Yates

ShpjegimiSQ

Mënyra e saktë për të përzier një varg: për çdo pozicion nga fundi, ndërroje me një pozicion të rastësishëm para tij. Çdo renditje ka të njëjtën gjasë. Përzierjet „naive“ janë shpesh të anshme.

EnglishEN

The correct way to shuffle an array: for each position from the end, swap it with a random earlier position. Every ordering is equally likely. “Naive” shuffles are often biased.

Si ta mendosh

Si të përziesh letrat e lojës në mënyrë krejt të drejtë.

Lexoje në anglisht

Like shuffling a deck of cards completely fairly.

Shembull kodipython

for i in range(len(v) - 1, 0, -1):
    j = random.randint(0, i)
    v[i], v[j] = v[j], v[i]

Terma të lidhur