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

 
 
> Как функцией rand() получить число от 0 до 2 ?
-=Женек=-
сообщение Jan 13 2008, 11:33
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 559
Регистрация: 6-09-06
Пользователь №: 20 131



Как функцией rand() получить число от 0 до 2 ?
Да и объясните про srand() я каждый раз в цикле вызываю srand(rand()); но на работу rand() это не оказывает влияния.

короче говоря у меня есть массив Current[3], его нужно заполнить числами от 0 до 2

for (y=0;y<3;y++)
{
srand(rand());
Current[y]= что здесь?

}
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Rst7
сообщение Jan 13 2008, 19:19
Сообщение #2


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Другое дело, что деление сюда прикладывать как-то совсем не хочется. Так что я бы делал что-то типа

unsigned int i=(unsigned int)rand()/((RAND_MAX+1)/256);
i=i+i+i;
i>>=8;

В результате деление в первой строке (если RAND_MAX не совсем психозный) будет преобразовано к сдвигу (причем, специально каст к unsigned, чтобы знак не расширять) и даст результат 0..255, потом мы его умножим на 3 (сложением, чтобы компилятор не дай бог не позвал процедуру умножения) и разделим на 256 - получим результат от 0 до 2, с таким же распределением, как и rand.

Вроде нигде не промахнулся...


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- -=Женек=-   Как функцией rand() получить число от 0 до 2 ?   Jan 13 2008, 11:33
- - IgorKossak   Функция int rand(void) возвращает целое число в ди...   Jan 13 2008, 11:50
|- - Petka   Цитата(IgorKossak @ Jan 13 2008, 14:50) Ф...   Jan 13 2008, 11:57
|- - zltigo   Цитата(IgorKossak @ Jan 13 2008, 13:50) П...   Jan 13 2008, 11:59
|- - ReAl   Цитата(IgorKossak @ Jan 13 2008, 13:50) Ф...   Jan 13 2008, 13:33
|- - zltigo   Цитата(ReAl @ Jan 13 2008, 15:33) А-а-а...   Jan 13 2008, 13:59
- - -=Женек=-   мне не нужна плавающа точка. Ваш пример не работае...   Jan 13 2008, 12:21
|- - zltigo   Цитата(-=Женек=- @ Jan 13 2008, 14...   Jan 13 2008, 12:52
- - Rst7   ЦитатаТак просто не отделаетесь - Автор хотел диа...   Jan 13 2008, 14:55
- - ReAl   Да, конечно, while( r == 3), это я глюкнул - не ус...   Jan 13 2008, 15:01
- - -=Женек=-   Господа, ну конкретный результат кто-нибудь может ...   Jan 13 2008, 15:43
|- - Сергей Борщ   Цитата(-=Женек=- @ Jan 13 2008, 17...   Jan 13 2008, 16:21
|- - zltigo   Цитата(Сергей Борщ @ Jan 13 2008, 18:21) ...   Jan 13 2008, 17:09
- - -=Женек=-   брр... а RAND_MAX тогда чему равен? И к чему эти д...   Jan 13 2008, 16:34
- - Kirill Trusov   я конечно салага но 3 вопроса 1. для какого компи...   Jan 13 2008, 16:41
- - -=Женек=-   Цитатая конечно салага но 3 вопроса 1. для какого...   Jan 13 2008, 17:35
|- - zltigo   Цитата(-=Женек=- @ Jan 13 2008, 19...   Jan 13 2008, 17:47
- - -=Женек=-   Знаете, за что я благодарен форуму? Пока дождешься...   Jan 13 2008, 18:26
|- - zltigo   Цитата(-=Женек=- @ Jan 13 2008, 20...   Jan 13 2008, 18:36
- - -=Женек=-   Я прекрасно понимаю что делаю, это вы не понимаете...   Jan 13 2008, 18:45
|- - zltigo   Цитата(-=Женек=- @ Jan 13 2008, 20...   Jan 13 2008, 18:51
|- - Сергей Борщ   Цитата(zltigo @ Jan 13 2008, 20:51) НАДО ...   Jan 13 2008, 19:14
|- - zltigo   Цитата(Сергей Борщ @ Jan 13 2008, 21:14) ...   Jan 13 2008, 19:31
|- - ReAl   Цитата(zltigo @ Jan 13 2008, 21:31) Подст...   Jan 13 2008, 19:55
|- - zltigo   Цитата(ReAl @ Jan 13 2008, 21:55) вполне ...   Jan 13 2008, 20:29
- - -=Женек=-   И что? ну пусть будет 31232, делим на 3, получаем ...   Jan 13 2008, 19:02
- - Rst7   ЦитатаПРоделайте свой код с каждым из них в письме...   Jan 13 2008, 19:04
- - ReAl   RE: Как функцией rand() получить число от 0 до 2 ?   Jan 13 2008, 19:29
- - Rst7   ЦитатаВроде нигде не промахнулся... Таки немного ...   Jan 13 2008, 19:51
- - mdmitry   Вопрос в дискуссию: кто-нибудь из авторов варианто...   Jan 13 2008, 21:44
|- - zltigo   Цитата(mdmitry @ Jan 13 2008, 23:44) Там ...   Jan 13 2008, 21:49
|- - Kirill Trusov   Цитата(mdmitry @ Jan 13 2008, 23:44) Вопр...   Jan 15 2008, 19:52
- - Elegorod   Кодint a = (new java.util.Random()...   Jan 14 2008, 19:57


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

 


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


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