switch (c1){
case 'c': {i= 10 + rand()%(35+k); printf("copper sword\n");
break;}
break;
case 'i': {i= 30 + rand()%(100+k); printf("iron sword\n");
break;}
case 'g': {i= 90 + rand()%(250+k); printf("golden sword\n");
break;}
default: i=0;
}
Другие языки программирования и технологии
написал прогу на си с использованием рандома. всё работает, но всегда выводятся одни и те же числа.
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
int main() {
srand(time(NULL));
printf("%d\n", rand() % 10);
}
Ну ты понял, что нужно делать?
#include <stdio.h>
#include <stdlib.h>
int main() {
srand(time(NULL));
printf("%d\n", rand() % 10);
}
Ну ты понял, что нужно делать?
Без теории - никуда.
https://www.videosharp.info/article/sharp/id=522
Для получения последовательности случайных чисел в языке C# имеется класс Random. Этот класс предусматривает два конструктора:
- Random() - инициализирует экземпляр класса Random с помощью начального значения, зависящего от текущего времени. Вемя может быть представлено в тиках - 100-наносекундных импульсах, начиная с 1 января 0001 года. И значение времени в тиках представляет собой 64-битное целое число, которое и будет использоваться для инициализации экземпляра генератора случайных чисел.
- Random(Int32) - инициализирует экземпляр класса Random с помощью указанного начального значения. Такая инициализация генератора случайных чисел может быть удобна на этапе отладки программы, поскольку в этом случае при каждом запуске программы будут генерироваться одни и те же "случайные" числа.
Основным методом данного класса является метод Next(), позволяющий получить случайное число и имеющий ряд перегрузок:
- Next() - возвращает случайное целое неотрицательное число формата Int32.
- Next(Int32) - возвращает случайное целое неотрицательное число, которое меньше указанного значения.
- Next(Int32 min, Int32 max) - возвращает случайное целое число в указанном диапазоне. При этом должно соблюдаться условие min<max (первый аргумент должен быть меньше второго).
А также методы
- NextBytes(Byte[]) - заполняет элементы указанного массива байтов случайными числами.
- NextDouble() - возвращает случайное число с плавающей запятой, в диапазоне [0,0; 1,0).
https://www.videosharp.info/article/sharp/id=522
Для получения последовательности случайных чисел в языке C# имеется класс Random. Этот класс предусматривает два конструктора:
- Random() - инициализирует экземпляр класса Random с помощью начального значения, зависящего от текущего времени. Вемя может быть представлено в тиках - 100-наносекундных импульсах, начиная с 1 января 0001 года. И значение времени в тиках представляет собой 64-битное целое число, которое и будет использоваться для инициализации экземпляра генератора случайных чисел.
- Random(Int32) - инициализирует экземпляр класса Random с помощью указанного начального значения. Такая инициализация генератора случайных чисел может быть удобна на этапе отладки программы, поскольку в этом случае при каждом запуске программы будут генерироваться одни и те же "случайные" числа.
Основным методом данного класса является метод Next(), позволяющий получить случайное число и имеющий ряд перегрузок:
- Next() - возвращает случайное целое неотрицательное число формата Int32.
- Next(Int32) - возвращает случайное целое неотрицательное число, которое меньше указанного значения.
- Next(Int32 min, Int32 max) - возвращает случайное целое число в указанном диапазоне. При этом должно соблюдаться условие min<max (первый аргумент должен быть меньше второго).
А также методы
- NextBytes(Byte[]) - заполняет элементы указанного массива байтов случайными числами.
- NextDouble() - возвращает случайное число с плавающей запятой, в диапазоне [0,0; 1,0).
Ilgiz Tursunbekovich
тема по си, а не си шарп
rand() использует для генерации случайных чисел LFSR:
https://ru.wikipedia.org/wiki/Регистр_сдвига_с_линейной_обратной_связью
который всегда даёт одну и ту же последовательность.
https://ru.wikipedia.org/wiki/Регистр_сдвига_с_линейной_обратной_связью
который всегда даёт одну и ту же последовательность.
Профессионалы почему-то часто используют нестандартные генераторы случайных чисел - это не сильно сложные формулы. Также можно использовать заранее сгенерированный массив случайных чисел (100 вполне хватает) из математической программы, а начальную точку входа в массив брать как секунды системного времени при запуске программы.
Константин Бакович
Массив на 100 чисел ничем не лучше, чем встроенный генератор псевдослучайных чисел.
Это генератор псевдослучайных чисел, на самом деле они не случайные. Надо делать Randimize(seed), где seed -- миллисекунды системных часов например.
говнокод на тему -

говнокод на тему -

Похожие вопросы
- Помогите плиз, написать прогу на Си++! Срочно очень нужно!
- Нужна срочно помощь. Помогите мне написать прогу на СИ, плиииз!!!
- помогите очень надо написать прогу на си
- Программирование на языке СИ с использованием подпрограммы-функции
- нужна полная прога на си для задачи. найти натуральное число от1 до 10000 с максимальной суммой делителеи.
- Программирование на Си. нужно написать прогу
- напишите проги в ПАСКАЛЕ плиз!!!очень надо.
- <<ПОМОГИТЕ! НАПИСАТЬ ПРОГРАММУ НА СИ ИЛИ ПАСКАЛЕ КОТОРАЯ ВЫВОДИТЬ СУММУ ЦИФР ЧИСЛА ОТ 1 ДО N
- НОК 2-ух чисел - C++ Помогите, люди добрые. Как написать прогу на C++, которая вычисляет НОК двух чисел
- СРОЧНО ! Напишите прогу на Паскале