Generování náhodných čísel které se neopakují
Zdravím,
Potřeji regenerátor náhodných čísel, však aniž by si vygenerované hodnoty opalovaly. Tedy řečeno jinak řadu čísel v daném intervalu však skládany libovolně.
Prosím o obecnou syntaxy jak toto napsat, nebo přímo v jazyce visual basic.
Přemýšlel jsem nad tím ale moje metoda by byla asi nadměrně náročná jak pro psaní tak z hlediska optimalizace.
Děkuji všem
Po každé vygenerované hodnotě si zkontroluješ, zda už nebyla vygenerovaná a případně ji vygenerovat znovu. Pokud bys problém popsal podrobněji, tak by se dal vymyslet i lepší algoritmus.
Ano přesně o tom jsem uvažoval ale nepřipadá mi to jako optimání. Konkrétně se jedná o to že mám testovací program. Otázky načítám z txt ale chci aby se vždy popřecházely jinak.
slusne sa to da robit tak ze na zaciatku mas X cisel takze generujes nahodne cislo od 1 po X. to vyberes a odstranis z pola (posunies zbytok pola). Teraz uz mas len X-1 cisel takze generujes nahodne cislo od 1 po X-1, vyberes z pola, odstranis, a tak dookola v cykle az kym nebude pocet cisel 0.
optimalizovat sa to potom este da tak ze neposuvas pole ale urobis si len masku ze ktore uz boli vybrate a pri vyberani dalsieho cisla prehladavs masku a ratas pocet nevybratych cisel od zaciatku.
P.S. myslim ze tento postup by nemal modifikovat rozdelenie pravdepodobnosti takze rozdelenie by malo ostat take jake mas u generatora nahodnych cisel, ale nechce sa mi to ratat ani matematicky dokazovat :)