abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
dnes 16:24 | Nová verze

Byla vydána Mageia 5.1. Jedná se o první opravné vydání verze 5, jež vyšla v červnu loňského roku (zprávička). Uživatelům verze 5 nepřináší opravné vydání nic nového, samozřejmě pokud pravidelně aktualizují. Vydání obsahuje všechny aktualizace za posledního téměř půldruhého roku. Mageia 5.1 obsahuje LibreOffice 4.4.7, Linux 4.4.32, KDE4 4.14.5 nebo GNOME 3.14.3.

Ladislav Hagara | Komentářů: 0
dnes 13:42 | Pozvánky

V Praze probíhá konference Internet a Technologie 16.2, volné pokračování jarní konference sdružení CZ.NIC. Konferenci lze sledovat online na YouTube. K dispozici je také archiv předchozích konferencí.

Ladislav Hagara | Komentářů: 0
včera 22:44 | Komunita

Joinup informuje, že Mnichov používá open source groupware Kolab. V srpnu byl dokončen dvouletý přechod na toto řešení. V provozu je asi 60 000 poštovních schránek. Nejenom Kolabu se věnoval Georg Greve ve své přednášce Open Source: the future for the European institutions (SlideShare) na konferenci DIGITEC 2016, jež proběhla v úterý 29. listopadu v Bruselu. Videozáznam přednášek z hlavního sálu je ke zhlédnutí na Livestreamu.

Ladislav Hagara | Komentářů: 15
včera 15:30 | Zajímavý projekt

Společnost Jolla oznámila v příspěvku Case study: Sailfish Watch na svém blogu, že naportovala Sailfish OS na chytré hodinky. Využila a inspirovala se otevřeným operačním systémem pro chytré hodinky AsteroidOS. Použita je knihovna libhybris. Ukázka ovládání hodinek na YouTube.

Ladislav Hagara | Komentářů: 8
včera 14:15 | Nová verze

Byla vydána verze 7.1.0 skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Jedná se o první stabilní verzi nejnovější větvě 7.1. Přehled novinek v dokumentaci. Podrobnosti v ChangeLogu. K dispozici je také příručka pro přechod z PHP 7.0.x na PHP 7.1.x.

Ladislav Hagara | Komentářů: 2
včera 12:55 | Nová verze

Google Chrome 55 byl prohlášen za stabilní. Nejnovější stabilní verze 55.0.2883.75 tohoto webového prohlížeče přináší řadu oprav a vylepšení (YouTube). Opraveno bylo také 36 bezpečnostních chyb. Mariusz Mlynski si například vydělal 22 500 dolarů za 3 nahlášené chyby (Universal XSS in Blink).

Ladislav Hagara | Komentářů: 4
včera 11:55 | Pozvánky

Máte rádi svobodný software a hardware nebo se o nich chcete něco dozvědět? Přijďte na 135. sraz spolku OpenAlt, který se bude konat ve čtvrtek 8. prosince od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Sraz bude tentokrát tématický. Bude retro! K vidění budou přístroje jako Psion 5mx nebo Palm Z22. Ze svobodného hardwaru pak Openmoko nebo čtečka WikiReader. Přijďte se i vy pochlubit svými legendami, nebo alespoň na pivo. Moderní hardware má vstup samozřejmě také povolen.

xkucf03 | Komentářů: 0
včera 00:10 | Nová verze

Byla vydána verze 3.2 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata. Z novinek lze zmínit například podporu protokolů DNP3 a CIP/ENIP, vylepšenou podporu TLS a samozřejmě také aktualizovanou dokumentaci.

Ladislav Hagara | Komentářů: 0
1.12. 21:00 | Nová verze

Byla vydána beta verze Linux Mintu 18.1 s kódovým jménem Serena. Na blogu Linux Mintu jsou hned dvě oznámení. První o vydání Linux Mintu s prostředím MATE a druhé o vydání Linux Mintu s prostředím Cinnamon. Stejným způsobem jsou rozděleny také poznámky k vydání (MATE, Cinnamon) a přehled novinek s náhledy (MATE, Cinnamon). Linux Mint 18.1 bude podporován až do roku 2021.

Ladislav Hagara | Komentářů: 0
1.12. 16:42 | Nová verze

Byl vydán Devuan Jessie 1.0 Beta 2. Jedná se o druhou beta verzi forku Debianu bez systemd představeného v listopadu 2014 (zprávička). První beta verze byla vydána v dubnu letošního roku (zprávička). Jedna z posledních přednášek věnovaných Devuanu proběhla v listopadu na konferenci FSCONS 2016 (YouTube, pdf).

Ladislav Hagara | Komentářů: 0
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 767 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: Algoritmus na náhodné rozdělení dle gaussovy křivky

Jakub Lucký avatar 26.7.2009 23:06 Jakub Lucký | skóre: 40 | Praha
Algoritmus na náhodné rozdělení dle gaussovy křivky
Přečteno: 2553×
Programuji si takovou netriviální diskrétní simulaci a potřeboval bych poradit s jedním algoritmem.

Součástí mé simulace je odchod lidí z práce na oběd. Ten probíhá v přesně ohraničeném časovému úseku (dejme tomu 11:00 - 14:00) se špičkou ve 12:30... Tím nám vzniká jakási (dejme tomu symetrická) křivka, podle které bych potřeboval generovat náhodné časy odchodu na oběd.

Stručně řečeno: Potřebuji vygenerovat X náhodných čísel v nějakém intervalu, které při poskládání vytvoří gaussovu křivku... Jak na to?

Doufám, že je vysvětlení jasné, už mi z toho jde trochu hlava kolem...

Díky za pomoc
If you understand, things are just as they are; if you do not understand, things are just as they are. (Zen P.) Blogísek

Odpovědi

26.7.2009 23:34 Let_Me_Be | skóre: 20 | blog: cat /proc/idea/current | Brno
Rozbalit Rozbalit vše Re: Algoritmus na náhodné rozdělení dle gaussovy křivky
Hledej implementaci generatoru nahodnych cisel, ktery dokaze generovat podle nastaveneho rozlozeni. Pro C++ to umi napriklad Boost.
Linked in profil - Můj web - Nemůžete vyhrát hádku s blbcem. Nejdřív vás stáhne na svoji úroveň a pak ubije zkušenostmi.
Jakub Lucký avatar 27.7.2009 00:34 Jakub Lucký | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: Algoritmus na náhodné rozdělení dle gaussovy křivky
To mě ani nenapadlo, že bych dělal "reinventing the wheel"...

Má někdo tip na nějakou Python knihovnu která tohle umí?
If you understand, things are just as they are; if you do not understand, things are just as they are. (Zen P.) Blogísek
27.7.2009 09:40 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Algoritmus na náhodné rozdělení dle gaussovy křivky

Řekněme, že chci vygenerovat deset hodnot s normálním rozdělením, střední hodnotou pět a "sigmou" (odmocninou z rozptylu) jedna:

 

>>> from scipy import *
>>> random.normal(5,1,10)
array([ 4.17654928,  5.42693759,  2.65380726,  6.30024096,  5.91105815,
        6.26047915,  3.8240613 ,  5.48209872,  5.05101277,  3.30617717])

A je to :-)

27.7.2009 06:48 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Algoritmus na náhodné rozdělení dle gaussovy křivky
Stačí když použijete normální generátor náhodných čísel od 0 do 1 a výsledek pošlete jako parametr do kvantilové funkce. U gausse je tato funkce poměrně složitá, popis algoritmu a implementace lze najít např http://home.online.no/~pjacklam/notes/invnorm/
In Ada the typical infinite loop would normally be terminated by detonation.
27.7.2009 09:30 ivan
Rozbalit Rozbalit vše Re: Algoritmus na náhodné rozdělení dle gaussovy křivky

Hmm, a nestacilo by vygenerovat n cisel, secist je a pak vydelit n?.

 

27.7.2009 09:49 Filip Jirsák | skóre: 66 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Algoritmus na náhodné rozdělení dle gaussovy křivky
Průměr n náhodných čísel bude mít zase stejný tvar rozdělení, jako původních n čísel, ne?
27.7.2009 10:12 x22
Rozbalit Rozbalit vše Re: Algoritmus na náhodné rozdělení dle gaussovy křivky
Nie.
27.7.2009 10:39 Filip Jirsák | skóre: 66 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Algoritmus na náhodné rozdělení dle gaussovy křivky
No jo, ona náhodná čísla vygenerovaná v počítači asi budou patřit do nějakého omezeného intervalu…
27.7.2009 23:56 Martin | skóre: 10 | blog: Nádraží Perdido
Rozbalit Rozbalit vše Re: Algoritmus na náhodné rozdělení dle gaussovy křivky
Důvod pro normální rozdělení průměrů posloupností stejně rozdělených náhodných veličin je v něčem jiném.
27.7.2009 10:28 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Algoritmus na náhodné rozdělení dle gaussovy křivky
Pokud si pamatuju dobře tak střední hodnota (="průměr") má normální rozdělení, takže by to asi tak šlo: vezmete např 1000 čísel s uniformním rozdělením od N do M (=rand()), spočtete střední hodnotu, máte jedno náhodné číslo s normálním rozdělením, vezmete dalších 1000, spočtete stř. h., máte další náhodné č., ... postupně vám vyjde gauss s mí=(M+N)/2 a sigma užnevímkolik.

Ale spotřebuje to nepoměrně víc náhodných čísel než kvantilová funkce, přes kterou se to obvykle dělá.
In Ada the typical infinite loop would normally be terminated by detonation.
27.7.2009 10:48 Martin | skóre: 10 | blog: Nádraží Perdido
Rozbalit Rozbalit vše Re: Algoritmus na náhodné rozdělení dle gaussovy křivky
To záleží na tom, co by ta čísla generovalo. Třeba takové rand() % n by bylo pro výše uvedenou simulaci pravděpodobně nepoužitelné. To by asi chtělo použít nějaký propracovanější generátor.

Pokud by nezáleželo až tak na jazyku, udělal bych to v R. Tam je aspoň trochu jistota, že to bude dávat rozumné hodnoty pro různá rozdělení, má to i vlastní programovací jazyk, dělá to grafy... Na simulace ideální věc. Na Pravděpodobnosti a statistice jsme v něm dělali zápočtový projekt, taky diskrétní simulaci.
27.7.2009 10:52 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Algoritmus na náhodné rozdělení dle gaussovy křivky
Třeba takové rand() % n by bylo pro výše uvedenou simulaci pravděpodobně nepoužitelné.
Proč?
In Ada the typical infinite loop would normally be terminated by detonation.
27.7.2009 11:10 Martin | skóre: 10 | blog: Nádraží Perdido
Rozbalit Rozbalit vše Re: Algoritmus na náhodné rozdělení dle gaussovy křivky
Když jsem si s tím kdysi hrál, tak mi to nedávalo dostatečně rovnoměrně rozdělené hodnoty. Ale možná to tehdy bylo jenom nějaké zkriplené.

Určitě ale existují třeba pro takové C++ mnohem lepší a spolehlivější generátory.
27.7.2009 11:17 Martin | skóre: 10 | blog: Nádraží Perdido
Rozbalit Rozbalit vše Re: Algoritmus na náhodné rozdělení dle gaussovy křivky
(Samozřejmě záleží hlavně na tom, jak moc seriózní tu simulaci člověk potřebuje.)
27.7.2009 12:59 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Algoritmus na náhodné rozdělení dle gaussovy křivky
IMHO stačí číst z /dev/urandom (na Linuxu).
In Ada the typical infinite loop would normally be terminated by detonation.
27.7.2009 23:57 Martin | skóre: 10 | blog: Nádraží Perdido
Rozbalit Rozbalit vše Re: Algoritmus na náhodné rozdělení dle gaussovy křivky
Je to možné, takhle jsem to zatím nikdy nezkoušel. Ani vlastně nevím, jak /dev/urandom přesně funguje. Otestuju to a zkusím porovnat.
27.7.2009 12:33 podlesh | skóre: 37 | Praha
Rozbalit Rozbalit vše Re: Algoritmus na náhodné rozdělení dle gaussovy křivky
V dokumentaci výslovně varují před použitím modulo. Když už, tak rand() * N / RAND_MAX

27.7.2009 12:59 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Algoritmus na náhodné rozdělení dle gaussovy křivky
To je ale jen v nějaké referenční implementaci.
In Ada the typical infinite loop would normally be terminated by detonation.
27.7.2009 13:56 podlesh | skóre: 37 | Praha
Rozbalit Rozbalit vše Re: Algoritmus na náhodné rozdělení dle gaussovy křivky
Pravda, záleží na algoritmu a "Linux C Library use the same random number generator as random() and srandom(), so the lower-order bits should be as random as the higher-order bits"

27.7.2009 10:08 Vojtěch Horký | skóre: 39 | blog: Vojtův zápisník | Praha
Rozbalit Rozbalit vše Re: Algoritmus na náhodné rozdělení dle gaussovy křivky
Tohle by mělo jít bez problémů simulovat v R (a přihodím ještě odkaz s obrázkem).
I am always ready to learn although I do not always like to be taught. (W. Churchill)
27.7.2009 13:09 Radovan
Rozbalit Rozbalit vše Dotaz nematematika

Jak je velký rozdíl v průběhu mezi Gaussovou křivkou a obyčejnou sinusoidou?

hodnota=int(maxvyska*(1-cos(index*pi/limit)))

X
X
XXXX
XXXXXXXXX
XXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXX
XXXXXXXXX
XXXX
X
X

27.7.2009 13:44 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Dotaz nematematika
Rozdíl je přesně 1 :D (Za předpokladu, že normální rozložení bereme od −∞ do ∞ a sinus od 0 do π.)
27.7.2009 23:45 Radovan
Rozbalit Rozbalit vše Re: Dotaz nematematika

Mě šlo o tvar té křivky, ne o přesná čísla, interval toho mého grafu je <0;2π> Jen tak od oka bych totiž řekl, že ty průběhy jsou stejné...

28.7.2009 08:30 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Dotaz nematematika
Tak to je opravdu jen od oka ;)
In Ada the typical infinite loop would normally be terminated by detonation.
28.7.2009 09:24 Radovan
Rozbalit Rozbalit vše Re: Dotaz nematematika

Právě proto se ptám :-D

28.7.2009 09:58 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Dotaz nematematika

Tato debata je naprosto mimo původní téma. Ale když máme tu okurkovou sezónu ...

Místo "sinusovky" jsem použil kosinus na druhou (neptej se proč). Nakreslím-li to do stejného grafu spolu s Gaussovkou, dostanu tohle:

kf.fyz.fce.vutbr.cz/pub/gauss_cos2.png

A na co že ses vlastně ptal?

 

28.7.2009 11:37 Radovan
Rozbalit Rozbalit vše Re: Dotaz nematematika

Jo, je to trochu off-topic, takže díky. Ta moje "kosinusovka" je nejen otočená a posunutá, ale i roztažená, takže ve vrcholech se s gaussovkou potkává. Ptal jsem se na tu spodní část, na tom tvém obrázku je ten rozdíl už vidět.

Jakub Lucký avatar 28.7.2009 12:16 Jakub Lucký | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: Algoritmus na náhodné rozdělení dle gaussovy křivky
Všem děkuji za návrhy...
If you understand, things are just as they are; if you do not understand, things are just as they are. (Zen P.) Blogísek
28.9.2012 15:10 Wrunx
Rozbalit Rozbalit vše Re: Algoritmus na náhodné rozdělení dle gaussovy křivky
Možná už to je OT, ale: #Python 2.7 gaussian_values = [random.gauss(1, .5) for i in range(1000)]

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.