Генератор случайных чисел на языке Си с простой настройкой
Дорогие все, я просмотрел форумы и Google и нашел только сложные настройки для генераторов случайных чисел, которые более продвинуты, чем rand(). Моя проблема с rand () заключается в том, что я не могу изменить RAND_MAX, и даже когда я делаю это с помощью #undef и #define, за которыми следует целое число max, оно все равно не выходит за пределы 32768.
Вот что я ищу:
- Мне нужна случайная функция, к которой я могу получить доступ, включив заголовочный файл (независимо от того, заключен ли он в < & gt; или "").
- Он должен иметь максимум любого целого числа, которое может обрабатывать или длинные длинные или даже числа с плавающей запятой.
- Я также хотел бы, чтобы он мог генерировать отрицательные числа, если это возможно. Возможно, у меня есть обходной путь для этого, но было бы неплохо, если бы функция сгенерировала его сама.
- Я также хотел бы иметь диапазон чисел, в котором генерирующие функции остаются внутри.
Пожалуйста, направьте меня относительно несложных шагов для достижения этой цели, если я хочу запустить это на 64-разрядном компьютере Windows, используя мой любимый IDE-код:: Blocks. Заранее спасибо за вашу помощь.
Что я уже пробовал:
Я просмотрел форумы, не только этот, но и множество поисковых запросов в Google.
Mohibur Rashid
Что такое ваш компилятор?
Я только что протестировал это на linux 64 бит
#include < stdio.h>
#include <stdlib.h>
тап_п()
{
int i, n;
время Т;
printf ("%d\n", RAND_MAX);
n = 5;
/* Инициализирует генератор случайных чисел */
srand ((unsigned) time (& t));
/ * Выведите 5 случайных чисел от 0 до 49 */
для (i = 0 ; i < n; i++ )
{
printf ("%d\n", rand());
}
возврат (0);
}
в результате получается :
2147483647
584940180
862659951
1917044237
210835866
1005714980
2147483647 = (2^31)-1
и ваш максимум-это
32768 = (2^14)
Я предполагаю, что ваш RAND_MAX = 32767
Aamir Yousafi
Я использую компилятор GCC в 64-битной системе Windows. Да, я слышал, что реализация C на моем типе компьютера устанавливает RAND_MAX в 32768, и нет никакого способа изменить его. Ваш компьютер-это Linux. Я слышал, что C лучше всего работает в Linux. Для меня пока не практично и не доступно покупать ОС на базе Linux. А мой компьютер-ноутбук Acer V5-571g, вероятно, не с двойной загрузкой.
Mohibur Rashid
Ну а если у вас есть интерес работать в среде linux(я не уверен, что вы студент), не покупая новую, я бы дал вам небольшой совет. Установите виртуальную коробку. Это бесплатно. И установите linux(убедитесь, что не устанавливаете графическую версию). Получить Putty и SSH ..
Aamir Yousafi
но virtual box - это приложение для Windows, верно? Как бы я работал над C из этой среды?
Mohibur Rashid
Сначала установите виртуальную коробку. Затем создайте виртуальный компьютер. Затем установите linux на свой виртуальный компьютер, не забудьте установить openssh-сервер в свой виртуальный ящик. затем используйте шпатлевку.. и не ждите, что узнаете все в комментарии. пожалуйста, попытайтесь понять намек, начните учиться.