Ko
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 269
1

Может кто знает как сделать рандом от 0 до 4294967295

16.06.2016, 02:33. Показов 3018. Ответов 37
Метки нет (Все метки)

Столкнулся с ограничение в 32 тысячи при рандоме.

C++
1
2
3
4
5
6
7
srand((unsigned int)time(NULL));
unsigned int tmp = 0;
    for (int i = 0; i < 100; i++)
    {
        tmp = 0 + rand() % 4294967295;
..... код
}
ограничение понятно, но как генерить случайные от 0 до 4294967295 ?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.06.2016, 02:33
Ответы с готовыми решениями:

Не могу сделать, посмотрите может кто знает как сделать
построить формулу для определения зависимости y от x с использованием логических функций: и, или,...

Конвертировать из С++ в QBasic, может кто знает как..
Одна знакомая девушка попросила ниписать не очень сложную прогу для работы с массивами. Я написал,...

Задачи по C#, может кто знает как реализовать
999

Как это сделать кто знает? кто поможет?)
Задание № 8 Разработать базу данных «Пожарная охрана» Сведения: • Номер пожарного расчета,...

37
3 / 3 / 1
Регистрация: 03.03.2016
Сообщений: 86
16.06.2016, 02:40 2
Вы имеете ввиду в этом диапазоне чтобы одно число вышла, или как ?
Дайте точный вопрос или же пример
1
Ko
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 269
16.06.2016, 02:49  [ТС] 3
естественно 1 число от 0 до 4294967295 которое будет присвоено переменной tmp. при таком коде попадают данные с 0 до 32 тысяч

Добавлено через 44 секунды
тут пример у меня цикл который генерит 100 случайных чисел)но они все short)
0
123 / 123 / 70
Регистрация: 15.11.2014
Сообщений: 543
16.06.2016, 02:55 4
А обязательно рандом?
1
Ko
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 269
16.06.2016, 02:56  [ТС] 5
да естественно
0
3880 / 2805 / 651
Регистрация: 08.06.2007
Сообщений: 9,558
Записей в блоге: 4
16.06.2016, 03:01 6
А если так?
C++
1
        tmp = rand()<<17 | rand()<<2 | rand() & 3;
3
123 / 123 / 70
Регистрация: 15.11.2014
Сообщений: 543
16.06.2016, 03:02 7
Лучший ответ Сообщение было отмечено Ko как решение

Решение

Загуглил по поводу функции
Функция rand() возвращает целое число от 0 до значения присвоенного константе RAND_MAX. Значение RAND_MAX зависит от системы и определено в заголовочном файле stdlib.h. Так, например, оно может быть равно 32767 (двухбайтовое целое) или 2147483647 (четырехбайтовое целое).
1
Ko
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 269
16.06.2016, 03:12  [ТС] 8
я уже это гуглил

Добавлено через 1 минуту
код есть рабочий?)
0
123 / 123 / 70
Регистрация: 15.11.2014
Сообщений: 543
16.06.2016, 03:14 9
Ko, palva, скинул неведомая вещь. Просто жесть
Миниатюры
Может кто знает как сделать рандом от 0 до 4294967295  
1
Ko
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 269
16.06.2016, 03:15  [ТС] 10
этот код конечно супер"tmp = rand()<<17 | rand()<<2 | rand() & 3;
", но тут может быть вообще число 0?
0
161 / 153 / 92
Регистрация: 18.11.2015
Сообщений: 677
16.06.2016, 03:15 11
Лучший ответ Сообщение было отмечено Ko как решение

Решение

Ko, так?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <random>
#include <ctime>
 
void main()
{
 
    std::default_random_engine randomEngine(time(0));
 
    std::uniform_int_distribution<unsigned int> randomNumber(0, 4294967295); // (0, std::numeric_limits<unsigned int>::max());
 
    std::cout << randomNumber(randomEngine) << std::endl;
 
    std::cin.get();
 
}
1
Ko
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 269
16.06.2016, 03:16  [ТС] 12
как это "rand() & 3" понять?
0
123 / 123 / 70
Регистрация: 15.11.2014
Сообщений: 543
16.06.2016, 03:17 13
Поставил в общем, если найдет то остановит, пойду спать. А так пока меньше 6 знаков не было

C++
1
2
3
4
if(d < 1000)
        {
        system("pause");
        }
1
Ko
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 269
16.06.2016, 03:21  [ТС] 14
видимо все классные программисты по ночам обитают тут)

Добавлено через 2 минуты
илья9696 ты мне скажи если будет 0))))))))))
0
123 / 123 / 70
Регистрация: 15.11.2014
Сообщений: 543
16.06.2016, 03:23 15
Следующее значение 0, посмотрим будет ли
Миниатюры
Может кто знает как сделать рандом от 0 до 4294967295  
1
Ko
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 269
16.06.2016, 03:26  [ТС] 16
а я предыдущий код на ночь поставлю поглядим что будет)))
0
7165 / 6140 / 2802
Регистрация: 14.04.2014
Сообщений: 26,462
16.06.2016, 07:56 17
meJevin, же показал нормальный вариант, с нулём.
0
Ko
5 / 5 / 2
Регистрация: 23.12.2011
Сообщений: 269
16.06.2016, 12:02  [ТС] 18
запустил на ночь, меньше 10000 не было числа
0
Форумчанин
Эксперт CЭксперт С++
8182 / 5032 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
16.06.2016, 12:27 19
meJevin, если нужен именно максимум от unsigned int, то можно явно не задавать границы.
C++
1
2
explicit uniform_int_distribution ( result_type a = 0,
    result_type b = numeric_limits<result_type>::max() );
int main

C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include <random>
 
int main()
{
    std::mt19937 gen {std::random_device()()};
    std::uniform_int_distribution<unsigned int> dist;
    std::cout << dist(gen) << std::endl;
}
1
3880 / 2805 / 651
Регистрация: 08.06.2007
Сообщений: 9,558
Записей в блоге: 4
16.06.2016, 12:32 20
Лучший ответ Сообщение было отмечено Ko как решение

Решение

Почему бы не быть нулю? Если генератор случайных чисел хороший, то ноль тоже должен иногда случаться. Можно даже посчитать вероятность.
Цитата Сообщение от Ko Посмотреть сообщение
как это "rand() & 3" понять?
& - это операция побитового умножения. А в данном случае из очередного случайного числа выделяются два правых бита (3 это, как известно, ...0000000000000011). Остальные биты устанавливаются в ноль.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.06.2016, 12:32
Помогаю со студенческими работами здесь

ЗНАТКИ, может, знает кто-нибудь как решить ?
Кто может, если не трудно, подсказать как решить задачи с помощью Excel.!!! 1. Допустим есть...

Может кто знает как решать эти задачи?
Заранее спасибо!

Стек и очередь, может кто-нибудь знает как делается?
Написать программу сложения элементов стека и очереди, заполненных одновременно одними и теми же...

Может кто знает название шаблона как на этом сайте?
Всем привет. Помогите подобрать. Может кто сталкивался. http://carpfishing.by/


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru