Portál AbcLinuxu, 14. července 2025 23:43
Řešení dotazu:
To je zase dotaz.
Prozradíš nám alespoň jazyk v kterém to chceš udělat?
import random def generate(): numbers = [] while True: if not numbers: numbers = list(range(10)) random.shuffle(numbers) yield numbers.pop() # And now simply generate the numbers for x in generate(): print xAlternativně jde při každém kroku vygenerovat posici ve seznamu zbývajících čísel, odpovídající číslo vrátit, na tuto posici přesunout poslední číslo a seznam zbývajících čísel zkrátit. Má-li být rozsah generovaných čísel tak velký, že toto jednoduché řešení nelze použít, jsou jiné možnosti, ale to chce znát něco o zamýšlené aplikaci.
Ahoj.
Ten python jsem taky moc nepobral, takze spis odhaduju z toho slovniho popisu, ze to probiha zhruba takto:
Jestli jsem se netrefil, tak snad me autor opravi
Dejv
use List::Util qw{shuffle}; my @numbers = (1..10)x4; #do @numbers dej 4x čísla 1..10 say join " ",shuffle(@numbers); #zamíchej tyto čísla a vytiskni jetedy pokud chce permutace s opakováním, pro variace stačí vzít prvních n prvků. popř. by šla použít přímo nějaká knihovna na permutace (variace) s opakováním
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.