Generování náhodných čísel - MATLAB
Mam vektor cisel v = [1 2 3 4 5 6 7 8 9 10 11]... Potrebuju je nahodne generovat a to tak, ze cislo 1 ma pravdepodobnost vyskytu 1, cislo 2 ma pravdepodobnost vyskytu 0.9, cislo 3 ma pravdepodobnost vyskytu 0.8... az cislo 11, ktere ma pravdepodobnost vyskytu 0.
... aby som ta aj naviedol na mozne riesenie: napr. mozes si vygenerovat nahodne cislo s rovnomernym rozdelenim (napr. z rozsahu 0-1) a ten rozsah rozdelit potom podla toho jake chces mat ty pravdepodobnosti, napr. ak by som sa mal rozhodovat len medzi 2 cislami a jedno by malo mat pravdepodobnost 80% a druhe 20% (vsimni si ze sucet je 1), tak by som napisal do nejakeho programu nieco ako:
X=rand();
if(X<0.8) Vystup=prve_cislo;
else Vystup=druhe_cislo;
Na 11 cisel a do formatu matlabu si to prerob sam. Poiuzitie rand a if je to jedno z moznych rieseni, urcite existuje aj kopa inych.
S tim, ze soucet pravdepodobnosti musi byt 1 souhlasim. Ale pokud vse dobre chapu, tak ja mam na mysli rozdeleni nahodne veliciny. Tzn. jako je generator v matlabu na normalni rozdeleni randn, kdy kazde hodnote na ose x je prirazena urcita pravdepodobnost, tak jsem mel na mysli kdy ja tu pravdepodobnost rozlozeni mam vlastne takto sestupnou (polovina trojuhelniku). Tzn. aby se nahodne generovali cisla s danou pravdepodobnosti. Tzn., že 2 se bude vyskytovat nejcasteji, 3 mene casto atd. Jestli jsem neco spatne pochopil, tak se omlouvam za moji blbost. Jinak je to ze zadani skolniho projektu, ale to me tak napadlo na okraj, jak se da vlastne toto udelat a jestli teda vubec.
som ti napisal ze jak mozes pomocou nahodneho cisla rovnomernej pravdepodobnosti (rand()) urobit to co chces. v tvojom pripade tam za tym if bude este 9x elsif a budes mat to co si chcel v zadani (samozrejme s pravdepodobnostami takymi aby sucet bol 1). cisla u podmienok if a elsif zavisia od tych tvojich pravdepodobnosti vyskytu.
Náhodou som natrafil na túto debatu. Riešim problém, v ktorom sa mi má vytvoriť n náhodných čístel z intervalu 0.02-0.3. Pričom n je 140. Neviem ako to mám zapísať aby mi hádzalo tie čísla náhodne len z toho rozmedzia.
no napriklad tak ze budes generovat nahodne cisla od 0.0-2.98 (na to tam bude urite rovno funkcia)
a ku kazdemu potom pripocitas 0.02