Как сделать Random. Я искал но не, где толком понятно не сказано - как сделать Random. Я хочу узнать об этом подробно, чтобы в случае если кто спросит, я смог с лёгкостью дать этому объяснение. И самому будет спокойно, что я знаю что и как работает. На всякий случай скажу, что я хочу сделать карточную игру (для тренировки) Но для того, чтобы сделать Случайную выдачу карт, нужно знать Random. Да и вообще в будущем это я думаю это мне пригодиться :)
Пишу на C#
Если не сложно приведите пример кода с использованием этого Random'a (Не обязательно на карточной игре :))
Другие языки программирования и технологии
Как сделать Random в C#
Есть три способа (основные в С#):
1ый) это System.Random - его описали выше.
2ой) System.Security.Cryptography.RNGCryptoServiceProvider - Генератор случайных чисел основанный на криптографе, там в рандоме помимо времени используются множество процессов ПК, Делая таким образом числа практически не повторяющими (случайными)
Нет это не случайные числа, если у человека есть данные, то он запросто сможет посчитать число которое генерируется, НО во всяком случае он самую малость зависит от времени.
3) GUID - число.
Обо всем читай в интернете, не хочу подробно все расписывать.
Одно скажу - по рандомности выигрывает 2ой и 3ий.
по скорости создания одного случайного числа выигрывает 3ий.
по скорости заполнения массива (10000х10000 например) выигрывает 1ый и 2ой способ (одинаковы)
П. С. В источниках оставил хорошую на мой взгляд статью по случайным числам с примерами (описано фактически тоже самое что я говорил только чуть подробней)
1ый) это System.Random - его описали выше.
2ой) System.Security.Cryptography.RNGCryptoServiceProvider - Генератор случайных чисел основанный на криптографе, там в рандоме помимо времени используются множество процессов ПК, Делая таким образом числа практически не повторяющими (случайными)
Нет это не случайные числа, если у человека есть данные, то он запросто сможет посчитать число которое генерируется, НО во всяком случае он самую малость зависит от времени.
3) GUID - число.
Обо всем читай в интернете, не хочу подробно все расписывать.
Одно скажу - по рандомности выигрывает 2ой и 3ий.
по скорости создания одного случайного числа выигрывает 3ий.
по скорости заполнения массива (10000х10000 например) выигрывает 1ый и 2ой способ (одинаковы)
П. С. В источниках оставил хорошую на мой взгляд статью по случайным числам с примерами (описано фактически тоже самое что я говорил только чуть подробней)
Не знаю, что тебе недостает. Здесь исчерпывающая информация: http://msdn.microsoft.com/ru-ru/library/system.random(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1
using System;
...
//Инициализация
Random r = new Random();
...
//Использование
int x = r.Next(6); //случайное целое число от 0 до 5
double y = r.NextDouble(); //случайное веществеенное число от 0 до 1
using System;
...
//Инициализация
Random r = new Random();
...
//Использование
int x = r.Next(6); //случайное целое число от 0 до 5
double y = r.NextDouble(); //случайное веществеенное число от 0 до 1
вот - в случае если кто спросит)
вопрос несколько не корректный, так как невозможно сгенерить полностью случайное число. Нужно взять какое-то число, и от него уже отходить, написав математический алгоритм генерирующий число, принимая во внимание и то число которое было созданно только что. Random - учитывает время, соответственно, если создавать каждый раз новую Random r = new Random(); int a = r.Next(0,5);
это значит что "а" энное количество раз будет одинаковым.
В интернете существует большое количество скриптов генерирующий случайные номера, отталкивающиеся от того или другого числа (великий гугл! )
пример
http://www.yoda.arachsys.com/csharp/miscutil/
можно - если уж сильно лень и главное получить работающий кусок кода пользоваться этим
public static int RandNumber(int Low, int High)
{
Random rndNum = new Random(int.Parse(Guid.NewGuid().ToString().Substring(0, 8), System.Globalization.NumberStyles.HexNumber));
int rnd = rndNum.Next(Low, High);
return rnd;
}
вопрос несколько не корректный, так как невозможно сгенерить полностью случайное число. Нужно взять какое-то число, и от него уже отходить, написав математический алгоритм генерирующий число, принимая во внимание и то число которое было созданно только что. Random - учитывает время, соответственно, если создавать каждый раз новую Random r = new Random(); int a = r.Next(0,5);
это значит что "а" энное количество раз будет одинаковым.
В интернете существует большое количество скриптов генерирующий случайные номера, отталкивающиеся от того или другого числа (великий гугл! )
пример
http://www.yoda.arachsys.com/csharp/miscutil/
можно - если уж сильно лень и главное получить работающий кусок кода пользоваться этим
public static int RandNumber(int Low, int High)
{
Random rndNum = new Random(int.Parse(Guid.NewGuid().ToString().Substring(0, 8), System.Globalization.NumberStyles.HexNumber));
int rnd = rndNum.Next(Low, High);
return rnd;
}
скачай рандомник
Похожие вопросы
- Как сделать условие в C++?
- помогите сделать задачку на c++ пожалуйста.
- Как сделать выборв в C++?
- Помогите сделать задачу на C++.
- помогите сделать в программе c++
- кто может сделать прогу в C++ которая поменяет местами в каждом столбце минимальный и максимальные элементы в матрице??
- Нужно сделать игру на C++ за деньги до 25 августа:
- Проблема с оператором random в паскале
- Класс Math и его метод random
- Random