LINUXSOFT.cz
Nazwa użytkownika: Hasło:     
    CZ UK PL

> Komentarze :: Poradna Pascal - random

Pascal - random 12.10.2010 20:40
Michaela Jírů

Ahoj, s pascalem začínám a dostala jsem se k problému, kdy jsem potřebovala generovat nádodná čísla. použila jsem tedy uses crt, randomize a nakonec random (6). \program ale neházel výsledky, jaké jsem očekávala. Nechala jsem si tedy vypsat 10 těchto náhodně generovaných čísel a výsledkem bylo například : 1222222220, prostě jedna cifra se vždy několikrát opakovala. Tak by mě zajímalo, jestli je chyb na straně mé a použití randomu není tak snadné, jak jsem očekávala, nebo jestli je tohle normální?Díky

Re: Pascal - random 14.10.2010 16:50
Aleš Hakl

Na jake platforme a kompilatoru? Muzete ukazat kompletni zdrojovy kod?

To ze random vraci relativne dlouhe sekvence stejnych cisel jeste nemusi nutne znamenat, ze nevraci nahodna cisla. Naopak sekvence cisel, ktere nejsou nahodna, ale nekdo chce aby tak vypadali se daji poznat podle toho, ze dlouhe sekvence stejnych cislic neobsahuji.

Jinak randomize je treba volat idealne jenom jednou na zacatku programu, ne pred kazdym volanim random (kdyz jej budete volat pokazde, tak vam random bude vracet stale totez cislo, pro nejakou hodnotu "stale", treba mikrosekundu). Jinak vystup z random nikdy nejsou zrovna dobra nahodna cisla a hodi se tak na hry a podobna nenarocna vyuziti.

Re: Pascal - random 15.10.2010 19:51
Michaela Jírů

Nevím, co myslíte platformou, ale zkusím odpovědět, že mám Widows XP, překladč Free Pascal. Dostala jsem ve škole úkol naprogramovat program, který vypočte, za kolik hodů průměrně padne šestka. Zdrojový kód:
program kostka;
uses crt;
var hod, soucet, pokus, pocet, i : integer;

prumer : real;

begin
soucet:=0;
pokus:=0;
pocet:=0;
hod:=0;
prumer:=0;
for i:= 1 to 30000 do
begin
randomize;
hod:= random (6);
writeln (hod);
if hod<>5 then pocet := pocet+1
else
begin
pocet:=pocet+1;
soucet:=soucet + pocet;
pokus:=pokus+ 1;
pocet:=0;
end;
end;
prumer:=soucet/pokus;
writeln ('průměrný počet hodů je' , prumer);
readkey;
end.

Re: Pascal - random 16.10.2010 11:21
Radim Kolář

to randomize nesmi byt uvnitr for cyklu

Re: Pascal - random 16.10.2010 13:02
Jan Němec

program kostka;
uses crt;
var hod, soucet, pokus, pocet, i : integer;

prumer : real;

begin
soucet:=0;
pokus:=0;
pocet:=0;
hod:=0;
prumer:=0;
randomize;
for i:= 1 to 30000 do
begin
hod:= random (6);
writeln (hod);
if hod<>5 then pocet := pocet+1
else
begin
pocet:=pocet+1;
soucet:=soucet + pocet;
pokus:=pokus+ 1;
pocet:=0;
end;
end;
prumer:=soucet/pokus;
writeln ('průměrný počet hodů je' , prumer);
readkey;
end.

Re: Pascal - random 18.10.2010 21:28
Michaela Jírů

Chtěla bych moc poděkovat, program jsem upravila a už funguje podle mých představ.


KOMENTARZE
Pascal - random 12.10.2010 20:40 Michaela Jírů
  L Re: Pascal - random 14.10.2010 16:50 Aleš Hakl
    L Re: Pascal - random 15.10.2010 19:51 Michaela Jírů
      |- Re: Pascal - random 16.10.2010 11:21 Radim Kolář
      L Re: Pascal - random 16.10.2010 13:02 Jan Němec
        L Re: Pascal - random 18.10.2010 21:28 Michaela Jírů
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
> Szukanie oprogramowania
1. Pacman linux
Download: 4698x
2. FreeBSD
Download: 8874x
3. PCLinuxOS-2010
Download: 8378x
4. alcolix
Download: 10644x
5. Onebase Linux
Download: 9444x
6. Novell Linux Desktop
Download: 0x
7. KateOS
Download: 5935x

1. xinetd
Download: 2226x
2. RDGS
Download: 937x
3. spkg
Download: 4317x
4. LinPacker
Download: 9581x
5. VFU File Manager
Download: 3019x
6. LeftHand Mała Księgowość
Download: 6833x
7. MISU pyFotoResize
Download: 2592x
8. Lefthand CRM
Download: 3387x
9. MetadataExtractor
Download: 0x
10. RCP100
Download: 2859x
11. Predaj softveru
Download: 0x
12. MSH Free Autoresponder
Download: 0x
©Pavel Kysilka - 2003-2024 | mailatlinuxsoft.cz | Design: www.megadesign.cz