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í
×
dnes 10:11 | Komunita
OpenBSD 5.5 vyjde 1. května. Oficiální píseň je už ale k dispozici. Nejnovější hudební hit z produkce OpenBSD je věnován problému roku 2038: Řekněte mi doktore, jaký bude rok, 1901 nebo 2038? OpenBSD 5.5 přijde s 64bitovým time_t na všech platformách. Píseň s názvem Wrap in Time lze stáhnout ve formátech MP3 a OGG.
Ladislav Hagara | Komentářů: 12
včera 23:38 | Pozvánky
LvB a Openmobility vás zvou na 103. sraz příznivců svobodného SW a HW, který se bude konat v pátek 18. dubna od 18 hodin v restauraci Magistr na ulici Hrnčířská 23. Těšíme se na vás.
Ladislav Nešněra | Komentářů: 14
včera 17:18 | Nová verze
Clement "Clem" Lefebvre oznámil, že desktopové prostředí Cinnamon dospělo do verze 2.2. Verze 2.2 vychází půl roku po verzi 2.0 (zprávička). Přehled vybraných nových vlastností i s náhledy v oznámení.
Ladislav Hagara | Komentářů: 13
včera 07:44 | Komunita
Mitchell Baker oznámila, že prozatímním CEO Mozilly se stal Chris Beard. Chris Beard nahradil Brendana Eicha, který před několika dny na funkci CEO rezignoval a Mozillu opustil (zprávička).
Ladislav Hagara | Komentářů: 10
včera 06:15 | Zajímavý projekt
V říjnu loňského roku byl spuštěn projekt, jehož cílem je provést opravdový bezpečnostní audit TrueCryptu (zprávička). Webová stránka Is TrueCrypt Audited Yet? byla aktualizována. První fáze bezpečnostního auditu byla dokončena. Nalezeno bylo několik zranitelností. Nebyla ale nalezena zadní vrátka nebo záměrně škodlivý kód. Na stránkách projektu Open Crypto Audit (OCAP) je k dispozici dvaatřicetistránková závěrečná zpráva (pdf). [Slashdot]
Ladislav Hagara | Komentářů: 6
14.4. 07:32 | Komunita
GNOME Foundation se potýká s finančními problémy. Bylo rozhodnuto o zmrazení veškerých výdajů, které nejsou nezbytně nutné pro chod nadace. Jednou z příčin jsou zvýšené administrativní náklady spojené s projektem Outreach Program for Women (OPW). Podrobnosti v často kladených dotazech (FAQ). Podpořit GNOME Foundation lze několika způsoby. [Slashdot]
Ladislav Hagara | Komentářů: 123
14.4. 07:29 | Nová verze
Gordon "Fyodor" Lyon vydal Nmap 6.45. Nová verze tohoto nástroje zahrnuje mj. skript ssl-heartbleed pro detekci zranitelnosti Heartbleed. Podrobný přehled novinek a vylepšení v Changelogu.
Ladislav Hagara | Komentářů: 0
11.4. 22:48 | Bezpečnostní upozornění
NSA údajně věděla o závažné chybě Heartbleed v OpenSSL už od jejího zanesení do kódu a využívala ji k získávání hesel a dalších důvěrných informací. Ačkoliv má NSA primárně sloužit k obraně USA, dala raději přednost využití pro útok než ochraně vlastního obyvatelstva před špehováním jinými zeměmi.
Luboš Doležel (Doli) | Komentářů: 121
11.4. 09:14 | Zajímavý článek
Allan Day, jeden z hlavních UX návrhářů GNOME, napsal na svém blogu, že má zájem zlepšit vztahy s komunitou, zvláště řešit staré nahlášené chyby, které se neřeší tak rychle jak by měly. To odrazuje pak některé přispěvatele z komunity. Také chce zlepšit zpětnou vazbu od začínajících uživatelů. Mohli by se častěji zapojovat do projektu a hlavně by měli vědět, s čím mohou pomoci.
jadd | Komentářů: 83
11.4. 08:20 | Nová verze
Medusa4 je 2D a 3D CAD aplikace pro tvůrčí návrhy od CAD-Schroer. Dnes je ke stažení nejnovější verze 5.2.1. Pro studenty a osobní použití je jako obvykle zdarma na základě zadané MAC (Eth) adresy a základních osobních údajů - MEDUSA4 Personal. Rozhodně stojí za vyzkoušení všemi, kdo s CAD pracují či hledají levné linuxové řešení.
Petr Ježek | Komentářů: 1
Máte na svém notebooku zašifrovaný pevný disk?
 (76%)
 (24%)
Celkem 390 hlasů
 Komentářů: 8, poslední 14.4. 20:28
Rozcestník
Reklama
Autoškola testy online Levný benzín

Dotaz: c++ - generator nahodnych cisel.

25.2.2006 20:53 riggs
c++ - generator nahodnych cisel.
Přečteno: 18233×
Zdravim. Potreboval by som poradit. Ako sa da v C++ urobit funkcia, ktora by mi po kazdom zavolani vygenerovala nejake nahodne cislo, povedzme od 1 do 1000? Potrebujem na to nejaku kniznicu alebo sa to da napisat primao v C ? Pouzivam len kniznicu iostream pod linuxom, c++ sa zatial venujem len cca 6 mesiacov. dik

Odpovědi

25.2.2006 21:11 #Tom
Rozbalit Rozbalit vše Re: c++ - generator nahodnych cisel.
Knihovna jazyka C nabízí funkce rand a random, nejprve je však třeba nastavit počáteční hodnotu pomocí srand nebo srandom. Třeba takto:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
  srand(time(0));
  cout << "Náhodné číslo od nuly do deseti: " << rand() % 11 << endl;
}
Luboš Doležel (Doli) avatar 25.2.2006 21:15 Luboš Doležel (Doli) | skóre: 97 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: c++ - generator nahodnych cisel.
#include <cstdlib>

int genrand(int min, int max)
{
    return min+(rand()%(++max-min));
}
Jinak viz rand(3).
25.2.2006 21:22 Lukáš Rýdlo | skóre: 18 | blog: Silný kafe | Brno
Rozbalit Rozbalit vše Re: c++ - generator nahodnych cisel.
Nahodna cisla se generuji pomoci funkce rand(), ktera dava int, nebo random(), ktera dava long int. Pred pouzitim je vhodne inicializovat generator pseudonahodnych cisel pomoci srand(nejaky_unsigned_int), resp. srandom(nejaky_unsigned_int). Ten int v argumentu by mel byt pokud mozno nekonstatni, jinak bys asi dostaval porad stejna nahodna cisla ;-) (tim si ted nejsu zcela jist, protoze jsem to nezkousel a neznam pouzity algoritmus generovani, ale vetsinou to tak byva). Takze tam muzes hazet treba time().

Zbytek viz man 3 rand() nebo man 3 random().

A ten rozsah nejlepe osetris pomoci modula (zbytek po deleni). Pokud potrebujes rozsah mensi, nez je maximalni hodnota generovana prislusnou funkci, pak ji prozenes modulem. Napr. pro rozsah 0-100 pouzijes rand()%101 (101 je tam proto, ze delis modulo 101, abys dostal 0-100, tedy celkem 101 zbytkovou tridu). Tvuj problem 1-1000 je pak (rand()%1000)+1...

Uff, to byl vycerpavajici vyklad :-D
θηριον ειμι
25.2.2006 21:24 Lukáš Rýdlo | skóre: 18 | blog: Silný kafe | Brno
Rozbalit Rozbalit vše Re: c++ - generator nahodnych cisel.
To jsem to psal fakt 11 minut? ;-)
θηριον ειμι
Luboš Doležel (Doli) avatar 25.2.2006 21:25 Luboš Doležel (Doli) | skóre: 97 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: c++ - generator nahodnych cisel.
Já už to jen doplním o skupinu funkcí drand48, lrand48, mrand48, ... které generují např. desetinná čísla.
stativ avatar 26.2.2006 11:28 stativ | skóre: 54 | blog: SlaNé roury
Rozbalit Rozbalit vše Re: c++ - generator nahodnych cisel.
Na inicializaci generatoru napr. srand( (unsigned)time( NULL ) );
Ať sežeru elfa i s chlupama!!! stativ.kx.cz
elviin avatar 25.2.2006 23:03 elviin | skóre: 29 | blog: elviin | Plzeň-Praha
Rozbalit Rozbalit vše Re: c++ - generator nahodnych cisel.
Urcite bych pouzil boost::random.
//typ nahody
boost::ecuyer1988 genType;
 
//generator nahody s urcenim mezi
boost::variate_generator<boost::ecuyer1988, boost::uniform_int<> >
    mujGenerator(genType, boost::uniform_int<>(dolniMez,horniMez));

//generovani hodnot
for (int i = 0; i < 1000; ++i)
    cout << mujGenerator() << endl;

Založit nové vláknoNahoru

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

ISSN 1214-1267   Powered by Hosting 90 Server hosting
© 1999-2013 Argonit s. r. o. Všechna práva vyhrazena.