[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