[LUGOS-PROG] celoštevilsko računanje

Andraz Tori Andraz.tori1 at guest.arnes.si
Wed Feb 12 13:52:24 CET 2003


Na 1045053466, 2003-02-12 ob 13:37, je Miha Tomsic napisal(a):
> 	Hojla!
> 
> Zanima me, če mi lahko nekdo raloži, zakaj mi je tale izraz vračal 0.
> 
> long x;
> int k = 50;
> 
> x = (5 * k * random()) / RAND_MAX;

hmmmm koliko pa je RAND_MAX v tvojem konkretnem primeru?

na kratko ugibanje... RAND_MAX=0x7fffffff
torej.. vse karkoli bos celostevislko delil s to cifro bo 0

> Spodnji seveda deluje pravilno:
> 
> x = (long) (5.0 * k * random() / (RAND_MAX * 1.0));

če hočeš ostat v celih številih predlagam malce drugačen izračun
x = random() / (RAND_MAX / (k * 5));

sicer ne preveč priporočljiv, ampak najhitrejši je pa način:
x = random() % (k*5);

lep pozdrav
andraž tori
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://liste2.lugos.si/pipermail/lugos-prog/attachments/20030212/68be24b6/attachment-0001.pgp


More information about the lugos-prog mailing list