Registrace nového uživatele     Návod     Kluby     Archív  Lopuchu     Lopuch.cz  

Tolik rozruchu
jen v Lopuchu

Lopuch.cz

Jméno:
Heslo:
Podpora LCD:
 
Archiv klubu Programování [ŽP: neomezená] (kategorie Programování) moderuje tvx.
  Nastavení klubu     Nastavení práv     Homepage     Anketa     Přítomní     Oblíbené     Lopuch     Kategorie  
autor: 
text: 
vyplnit a 
Help
   
[ 413 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  
al3x 7.11.2004 19:02  81
Jeste me napadla jedna vec.

Udelam si tu Gaussovu krivku presne jak ji potrebuju (obor hodnot, def.obor). Pak budu (linearne) generovat souradnice v tomhle pomyslnym obdelniku. Kdyz se ta souradnice trefi v tom obdelniku POD krivku, tak si to X vezmu, kdyz se trefi NAD, tak ji zahodim.

+:
Takhle vygenerovanych X bude _presne_ podle ty G. krivky.
Staci mi fce ty krivky. Dal se to programuje lehce.

-:
Slozitost je 4x nasobna. Pro kazdy X, generuju jeste Y. Navic prijmu jen zhruba polovinu z nich.
andyman 7.11.2004 14:49  80
Nejjednoduseji jde generovat inverzni transformaci. Staci dobrej generator rovnomerneho rozlozeni R(0,1). Pak nahodne x s jakymkoliv rozlozenim jde generovat x = F-1(R(0,1)), kde F je distribucni funkce zadaneho rozlozeni. Tahle metoda se normalne pouziva v simulacich a funguje docela dobre.
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 7.11.2004 12:50  79
No jo, kvantil, ten pojem uz jsem taky nekde slysel. :-)
tessien Tessien Of course slavery is the worst thing - that ever happened. But maybe... 7.11.2004 12:29  78
No, IMHO na to jdete moc slozite :)

a) standartni normalni rozdeleni N(0,1) je verze gausova (tj. normalniho) rozdeleni pro mi=0. sigma^2=1 (to jsou ty parametry v zavorce)
b) alfa-kvantil nejakeho rozdeleni (kde alfa je 0 az 1 vcetne) je hodnota takova, ze alfa*100 procent hodnot je mensi nez ten kvantil (tj. napr. 0.5-kvantil nejakeho rozdeleni je median - takova hodnota, ze presne polovina hodnot je mensi nez on).
c) normalni rozdeleni ma tu vlastnost, ze mame-li N(0,1), pak N(mi,sigma^2) = mi + sigma^2*N(0,1). Cili, mam-li kvantil pro N(0,1) a chci kvantil pro N(mi,sigma^2), staci, kdyz ho prenasobim tim sigma^2 a prictu k nemu mi.
d) kvantily pro N(0,1) najdes v kazdych slusnych tabulkach, urcite i na netu - budou tam tak pro alfa v krocich po 0.05

Tak a ted, ty mas mi a sigma^2, chces podle toho nagenerovat nakych n cisel. Rekneme, ze mas ty kvantily po 0.05, cili ti to udela nejakych 20 intervalu. Kdyz ty kvantily naneses na osu x, rozdeli ti ji to opet na 20 (nebo 21) intervalu, tentokrat nestejne velkych. V kazdem z nich ma byt n/20 hodnot. V kazdem z tech intervalu uz to nageneruj nahodne linearne.

Vysledek se IMHO bude velmi hezky blizit gausovce, navic v mistech, kde je tech hodnot hodne, tj. okolo mi, budes mit ty intervaly male, tj. se to bude te idealni krivce blizit velmi hodne.
zeta_leader Zeta leader There are two of you, captain - don't you see? 7.11.2004 08:37  77
Al3X: Predstav si problem takto: Gaussovka je bez parametrov y=e^-(x^2), (teda x=sqrt(-Ln[y])), a ty potrebujes pretransformovat nejako pravdepodonosti rozlozene po usecke do Gaussovej krivky. Teda v strede krivky je to najhustejsie (symetria) a na okrajoch najriedsie. Zaujima ta tzv. Box-Muller transformation,ktora zozerie jedno pravdepodobnostne rozdelenie a vyhodi ti ine. Viz toto.
al3x 7.11.2004 01:27  76
No prave.

Napadalo me taky, ze bych si generoval cisla od 0 do 1000, tenhle interval bych si rozdelil do mensich intervaliku ve stylu 0 - 1, 1 - 5, 5 - 20, 20 - 50, 50 - 100, 100 - 300, 300 - 600, 600 - 900, 900 - 950, 950 - 970, 970 - 995, 995 - 999, 999 - 1000.
Takhle mi vznikne asi 13 skatulek, kdy nejpravdepodobnejsi je, ze se ty cisla budou trefovat do tech prostrednich a nejmin pravdepodobny jsou ty krajni skatule. Kdyby vysledna cisla podle gaussovky mela byt v rozsahu napr. 0 - 13, tak si to rozdelim opet na 13 _stejne_velkych_ intervalu a cisly z kazdy skatule rovnomerne pokryju jeden z nich. Logicky pak nejvic cisel padne doprostred a celej graf by odpovidal takovy lomeny care, ktera by opisovala gaussovu krivku.

Nebude to samozrejme uplne presny, ale zhruba to odpovidat bude. To je vlastne neco jako ty tvoje kostky. Tezko rict, jestli by to tak stacilo :(
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 7.11.2004 01:17  75
Hm, skoda, tak to me ted fakt nejak nenapada. Kdyby to aspon nebyly realny cisla, ale jenom prirozeny (nebo podobne vyjmenovatelny), tak treba generovat nahodny cisla mezi trojkou a osmnactkou podle gaussovky lze simulaci hodu tremi kostkami a sledovanim souctu. Tudiz pak na prevod do prakticky libovolneho intervalu celych cisel staci menit pocet kostek a jejich sten. Jenze pro realny cisla by to clovek musel zvysovat nejspis limitne k nekonecnu, takze to neni ta spravna metoda. :-)
al3x 7.11.2004 01:14  74
Ten ukol je slozitejsi, ale ano, tohle musim docilit, abych mohl pokracovat dal. Rozptyl urcenej neni a nechce se mi na nej ptat, pac mi ho hned zadaji jako dalsi parametr :)
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 7.11.2004 01:09  73
A co je presne ukol? Generovat nahodna realna cisla mezi nulou a deseti podle gaussovky? Se stredem v petce? A rozptyl neni tak moc urcenej/dulezitej?
al3x 7.11.2004 00:52  72
s/prat/ptat
al3x 7.11.2004 00:52  71
Chm.. No co se da delat.
Proste jsem dement. Mel v praci generovat nahodny nahodny cisla, udelal jsem to normalne linearne a pak jsem se naivne zeptal, jestli to nema byt rozlozeny podle Gaussovy krivky. Samozrejme, ze hned chteji, abych to udelal tak i tak. Z toho plyne pouceni, ze se clovek na takovy veci nema prat.
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 7.11.2004 00:49  70
AL3X: Ja si tohle pamatuju ne z analyzy, ale z pravdepodobnosti. :-) Jinak touhle dobou me uz souvisejiciho s matematikou obvykle nenapada nic…
al3x 6.11.2004 23:58  69
Chmm.. Skoda, ze jsem posledni analyzu nedal :|

Nebo napada te jinej zpusob, jak ty cisla generovat?
kdokoliv Kdokoliv Nevidím důvod dělat cokoliv bezdůvodně. - http://kkl2401.wz.cz 6.11.2004 23:55  68
Vzorec gaussovy krivky si samozrejme zpameti nevybavim, ale urcite by to nebylo tezke dohledat - jenom vim, ze je zavislej na dvou parametrech, ktere se typicky oznacuji mi a delta_na_druhou, pricemz ten prvni odpovida stredni hodnote a ten druhej rozptylu (cili samotne delta standardni odchylce nebo jak se to jmenuje). Jestli to jde i nejak pekne zintegrovat, to netusim.
al3x 6.11.2004 23:47  67
gaussova krivkaJak generovat nahodna cisla, s rozlozenim podle gaussovy krivky?

Uz jsem si neco zkousel a zjistil jsem, ze kdyz generuju cisla nahodne linearne treba od 0 do 10 a chci, aby mi to vracelo cisla s rozlozenim podle krivky F, tak je musim prohnat fci G takovou, ze G' = F (cti derivace fce G je F). Problem ale je v tom, ze nevim
1] jaka fce odpovida gaussove krivce
2] jaky je jeji integral

Nejaky napady?

[ 413 ] <Novější  <<<Nejnovější  Nejstarší>>>  Starší>  

(c) 2001-2011 Lopuch.cz   
Kontakt