реклама на сайте
подробности

 
 
> WINAVR rand(), не работает RAND_MAX
heburashka
сообщение Apr 19 2009, 14:49
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 71
Регистрация: 14-04-09
Пользователь №: 47 685



Здравствуйте.

Пытаюсь заставить rand() генерить в узком диапазоне 0-9

выставлял RAND_MAX 0b00001001

в пректе и в <stdlib.h>

не работает.

help


спасибо.

Сообщение отредактировал heburashka - Apr 19 2009, 14:54
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zltigo
сообщение Apr 19 2009, 15:11
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(heburashka @ Apr 19 2009, 17:49) *
Пытаюсь заставить rand()...

Не надо заставлять. Просто прочитайте описание rand() в любой из книжек.
value = rand() % 10;
Moderator:
Просьба не загромождать основные ветки (в частности "AVR") форума простейшими вопросами.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
singlskv
сообщение Apr 19 2009, 15:35
Сообщение #3


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(zltigo @ Apr 19 2009, 19:11) *
value = rand() % 10;
Очень не эфективно...
Надо как-нить так:
Код
  value = rand();
  value = (value & 0x0F) > 9 ? (value - 10) : value;

раз в 10-20 быстрее...
Go to the top of the page
 
+Quote Post
heburashka
сообщение Apr 19 2009, 15:41
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 71
Регистрация: 14-04-09
Пользователь №: 47 685



Цитата(singlskv @ Apr 19 2009, 18:35) *
Очень не эфективно...
Надо как-нить так:
Код
  value = rand();
  value = (value & 0x0F) > 9 ? (value - 10) : value;

раз в 10-20 быстрее...


спасибо.

не понятно почему через rand_max не работает.....

не подскажете?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 19 2009, 15:53
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(heburashka @ Apr 19 2009, 18:41) *
не понятно почему через rand_max не работает.....
Потому что RAND_MAX никак не влияет и не может влиять на работу библиотечной функции rand(). Через эту константу разработчики библиотеки сообщают ее пользователю, в каком диапазоне функция генерит свой результат. Повлиять на генерируемый функцией результат вы можете, изменив исходный код функции и перекомпилировав библотеку. А вот привести полученный от нее результат к интересующему вас диапазону вполне возможно. Пример - код zltigo. 

Цитата(singlskv @ Apr 19 2009, 18:35) *
Надо как-нить так:
Код
 value = rand();
  value = (value & 0x0F) > 9 ? (value - 10) : value;
раз в 10-20 быстрее...
Быстрее будет, но вот о нормальном распределении полученных значений можно забыть.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- heburashka   WINAVR rand()   Apr 19 2009, 14:49
|- - heburashka   Цитата(zltigo @ Apr 19 2009, 18:11) Не на...   Apr 19 2009, 15:33
||- - zltigo   Цитата(heburashka @ Apr 19 2009, 18:31) п...   Apr 19 2009, 15:40
|||- - heburashka   Цитата(zltigo @ Apr 19 2009, 18:40) Вот и...   Apr 19 2009, 15:44
|||- - heburashka   Цитата(heburashka @ Apr 19 2009, 18:44) д...   Apr 19 2009, 15:47
|||- - zltigo   Цитата(heburashka @ Apr 19 2009, 18:44) R...   Apr 19 2009, 15:48
||- - zltigo   Цитата(heburashka @ Apr 19 2009, 18:33) э...   Apr 19 2009, 15:42
|- - zltigo   Цитата(heburashka @ Apr 19 2009, 18:41) н...   Apr 19 2009, 15:46
||- - heburashka   Цитата(zltigo @ Apr 19 2009, 18:46) Потом...   Apr 19 2009, 15:53
||- - zltigo   Цитата(heburashka @ Apr 19 2009, 18:53) ....   Apr 19 2009, 15:56
||- - heburashka   Цитата(Сергей Борщ @ Apr 19 2009, 18:53) ...   Apr 19 2009, 16:07
||- - singlskv   Цитата(Сергей Борщ @ Apr 19 2009, 19:53) ...   Apr 19 2009, 16:15
||- - zltigo   Цитата(singlskv @ Apr 19 2009, 19:15) Код...   Apr 19 2009, 16:27
||- - singlskv   Цитата(zltigo @ Apr 19 2009, 20:27) Прям ...   Apr 19 2009, 16:38
||- - zltigo   Цитата(singlskv @ Apr 19 2009, 19:38) Или...   Apr 19 2009, 16:43
||- - singlskv   Цитата(zltigo @ Apr 19 2009, 20:43) Скоре...   Apr 19 2009, 18:53
||- - zltigo   Цитата(singlskv @ Apr 19 2009, 21:53) Да,...   Apr 19 2009, 19:26
||- - singlskv   Цитата(zltigo @ Apr 19 2009, 23:26) Какое...   Apr 19 2009, 19:41
||- - zltigo   Цитата(singlskv @ Apr 19 2009, 22:41) И л...   Apr 19 2009, 19:50
||- - singlskv   Цитата(zltigo @ Apr 19 2009, 23:50) Копия...   Apr 19 2009, 20:16
||- - zltigo   Цитата(singlskv @ Apr 19 2009, 23:16) Ува...   Apr 19 2009, 20:29
||- - singlskv   Цитата(zltigo @ Apr 20 2009, 00:29) В дан...   Apr 19 2009, 20:45
||- - zltigo   Цитата(singlskv @ Apr 19 2009, 23:45) ...   Apr 20 2009, 05:59
|- - singlskv   Цитата(heburashka @ Apr 19 2009, 19:41) н...   Apr 19 2009, 16:00
- - ARV   на спидометре машины написано 0..200 км/ч. это зна...   Apr 19 2009, 16:01
- - heburashka   напоследок. RAND_MAX восстанавливать с прежним з...   Apr 19 2009, 16:19
|- - ARV   Цитата(heburashka @ Apr 19 2009, 20:19) R...   Apr 19 2009, 16:23
|- - heburashka   Цитата(ARV @ Apr 19 2009, 19:23) формальн...   Apr 19 2009, 16:32
- - heburashka   singlskv спасибо за #15 пост ! наши одно...   Apr 19 2009, 16:44
|- - zltigo   Цитата(heburashka @ Apr 19 2009, 19:44) с...   Apr 19 2009, 16:48
- - ARV   вот ведь спорить любители я провел тест за вас: К...   Apr 20 2009, 06:41
|- - singlskv   Цитата(ARV @ Apr 20 2009, 10:41) выигрыш ...   Apr 20 2009, 08:07
|- - ARV   Цитата(singlskv @ Apr 20 2009, 12:07) а н...   Apr 20 2009, 08:22
|- - singlskv   Цитата(ARV @ Apr 20 2009, 12:22) да в общ...   Apr 20 2009, 08:25
|- - ARV   Цитата(singlskv @ Apr 20 2009, 12:25) А т...   Apr 20 2009, 08:26
|- - singlskv   Цитата(ARV @ Apr 20 2009, 12:26) прежде п...   Apr 20 2009, 08:35
|- - demiurg_spb   Цитата(singlskv @ Apr 20 2009, 12:35) Ну ...   Apr 20 2009, 11:56
- - mdmitry   Осталось только получить миллион нагенерированных ...   Apr 20 2009, 09:58
|- - singlskv   Цитата(mdmitry @ Apr 20 2009, 13:58) Оста...   Apr 20 2009, 12:06
- - singlskv   А автору топика, если ему нужно только 0-9,и нужно...   Apr 21 2009, 21:23
- - heburashka   мне просто нужно было от 0-9 причем времени вагон....   Apr 25 2009, 11:57
- - singlskv   Цитата(heburashka @ Apr 25 2009, 15:57) м...   Apr 25 2009, 20:45


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 21:02
Рейтинг@Mail.ru


Страница сгенерированна за 0.01427 секунд с 7
ELECTRONIX ©2004-2016