Титла: Rand() и osx Публикувано от: Stratovarius в Oct 21, 2007, 11:30 Това е кода с който си вземам случайно число:
У нас на Mac OS X не работи. В университета го качвам и работи, предполагам че има нещо общо с стойността на RAND_MAX, връща винаги z=2 у нас. някакви идеи ? Титла: Rand() и osx Публикувано от: task_struct в Oct 21, 2007, 13:07 Притеснява ме деленето. Ако rand() върне малко число (спрямо RAND_MAX), ще се получи стойност, клоняща към 0. При умножението по 100 може да се получи отрязване на част от стойността. Това зависи oт вида компилатора, процесора и размера на паметта, в която се прази променливата.
Също така крайния резултат ти е int. Стройност от сорта на 0.000004234234 в int e 0 . Титла: Rand() и osx Публикувано от: Stratovarius в Oct 21, 2007, 14:41 И на мен ми беше странно, аз бих написал само rand() % 100, за да получа число между 0 и сто, но прочетох в един туториал че е грешно така понеше взимам под внимание само долните битове на числото и по малко случайно там беше описана от мен ползваната формула:
http://members.cox.net/srice1/random/crandom.html която работи в университета, а у нас не ? В университета работи с gcc version 3.3.5 20050117 (prerelease) (SUSE Linux) А у нас с не: gcc version 4.0.1 (Apple Computer, Inc. build 5367) Титла: Rand() и osx Публикувано от: tarator в Oct 21, 2007, 18:45 Ами примера ти показва, че умниците, измислили гениалната формула, по която смяташ не са чак толкова умни колкото си мислят
![]() Титла: Rand() и osx Публикувано от: Stratovarius в Oct 21, 2007, 19:12 всъщност проблема се корени в gcc.
Във версия 4.0 и на горе има друго API за генериране на случайни числа. И в manна версия 3.* пише да не се ползва rand() % x; ще прочета целия ман и ще го предам така че да върви на унито, компилирано на gcc 3, но ще разнищя ситуацията |