Используете ли вы метод JTextArea
append(String)
для добавления дополнительного текста?
JTextArea txtArea = new JTextArea("Hello, World\n", 20, 20);
txtArea.append("Goodbye Cruel World\n");
Класс Random
используется для создания случайных чисел. (Это, конечно, псевдослучайно.)
Пример:
Random rnd = new Random();
int month = rnd.Next(1, 13); // creates a number between 1 and 12
int dice = rnd.Next(1, 7); // creates a number between 1 and 6
int card = rnd.Next(52); // creates a number between 0 and 51
Если вы собираетесь создать более одного случайного числа, вы должны сохранить экземпляр Random
и использовать его повторно. Если вы создадите новые экземпляры слишком близко по времени, они будут производить ту же серию случайных чисел, что и генератор случайных чисел, посеянный из системных часов.
Следующий код возвращает случайное число. В
int num = random.Next();
следующий код возвращает случайное число меньше чем 1 000. В
int num = random.Next(1000);
следующий код возвращает случайное число между минутой и макс. диапазоном.
GenerateВ aВ randomВ numberВ betweenВ twoВ числа:
public int RandomNumber(int min, int max)
{
Random random = new Random();
return random.Next(min, max);
}
Так же, как примечание для дальнейшего использования.
при использовании.NET Core несколько Случайных экземпляров не так опасны как прежде. Я знаю, что этот вопрос с 2010, но так как этот вопрос стар, но имеет некоторую привлекательность, я думаю, что это - хорошая вещь зарегистрировать изменение.
можно обратиться к этому вопросу, который я сделал несколько недель назад:
Microsoft изменяла Случайное семя по умолчанию?
В основном, они изменили семя по умолчанию с Environment.TickCount
до Guid.NewGuid().GetHashCode()
, поэтому если Вы создадите 2 экземпляра Случайных, то оно не отобразит те же числа.
Вы видите файл diffs от ПЛАТФОРМЫ/.NET CORE.NET (2.0.0 +) здесь: https://github.com/dotnet/coreclr/pull/2192/commits/9f6a0b675e5ac0065a268554de49162c539ff66d
Это не столь безопасно как RNGCryptoServiceProvider, но по крайней мере он не даст Вам странные результаты.
Если Вы хотите, чтобы CSRNG генерировал случайные числа между минутой и макс., это для Вас. Это инициализирует Random
классы с безопасными случайными семенами.
class SecureRandom : Random
{
public static byte[] GetBytes(ulong length)
{
RNGCryptoServiceProvider RNG = new RNGCryptoServiceProvider();
byte[] bytes = new byte[length];
RNG.GetBytes(bytes);
RNG.Dispose();
return bytes;
}
public SecureRandom() : base(BitConverter.ToInt32(GetBytes(4), 0))
{
}
public int GetRandomInt(int min, int max)
{
int treashold = max - min;
if(treashold != Math.Abs(treashold))
{
throw new ArithmeticException("The minimum value can't exceed the maximum value!");
}
if (treashold == 0)
{
throw new ArithmeticException("The minimum value can't be the same as the maximum value!");
}
return min + (Next() % treashold);
}
public static int GetRandomIntStatic(int min, int max)
{
int treashold = max - min;
if (treashold != Math.Abs(treashold))
{
throw new ArithmeticException("The minimum value can't exceed the maximum value!");
}
if(treashold == 0)
{
throw new ArithmeticException("The minimum value can't be the same as the maximum value!");
}
return min + (BitConverter.ToInt32(GetBytes(4), 0) % treashold);
}
}
Помните, что new Random ()
заполняется на текущей отметке времени.
Если вы хотите сгенерировать только одно число , вы можете использовать:
new Random (). Next (int.MinValue, int.MaxValue)
Для получения дополнительной информации см. Класс Random , однако обратите внимание:
Однако, поскольку часы имеют конечное разрешение, использование конструктора без параметров для создания различных объектов Random в близкой последовательности создает генераторы случайных чисел, которые производят идентичные последовательности случайных чисел
Поэтому не используйте этот код для генерации серии случайных чисел.
Вы можете использовать метод Джона Скита StaticRandom внутри библиотеки классов MiscUtil, которую он построил для псевдослучайного числа.
using MiscUtil;
...
for (int i = 0; i < 100;
Console.WriteLine(StaticRandom.Next());