Si tenemos una lista de elementos, por ejemplo:

```python

l = [ 2, 3, 5, 7, 11, 13, 17, 19 ] ```

Deck Card Shuffler

Y queremos desordenarla, pero con la condición de que ningún elemento ocupe la misma posición que ocupaba originalmente, podemos aplicar el algoritmo de Sottolo:

```python

from random import randrange def sattoloCycle(items): ... i = len(items) ... while i > 1: ... i = i - 1 ... j = randrange(i) # 0 < = j <= i-1 ... items[j], items[i] = items[i], items[j] ... return ```

```python

sattoloCycle(l) print l [5, 17, 3, 2, 7, 11, 13] ```


Entradas relacionadas


Published

Category

dev

Tags

Contacto