Как создать предвзятый генератор случайных чисел в VB.NET ?

#vb.net #random

#vb.net #Случайный

Вопрос:

Как мне создать генератор случайных чисел со смещением (RNG) в VB.NET ?

Я знаю, что мог бы сделать это, повозившись с выводом методов Randomize() / Rnd , но есть ли встроенный способ сделать это?

Я хочу, чтобы смещенный RNG выдавал мне либо 2, либо 4 (хотя использование 1 или 2 в качестве замены также подходит для меня), при этом 2 встречается в среднем в 90% случаев, а 4 встречается в среднем в 10% случаев.

Ответ №1:

Создайте генератор случайных чисел, чтобы возвращать значения от 1 до 10, если значение из генератора случайных чисел находится в диапазоне от 1 до 9, отправьте 2, если значение равно 10, отправьте 4.

Возможно, вы захотите взглянуть на это

http://msdn.microsoft.com/en-us/library/vstudio/ctssatww(v=vs.100).aspx?cs-save-lang=1amp;cs-lang=vb#code-snippet-2

Если вы хотите использовать маску для генерации своих значений

Комментарии:

1. спасибо, что предложили ответ! Однако я сказал » встроенный » метод, и это не совсем то, что я хотел. Я не буду голосовать против вас, хотя по доброте душевной.

Ответ №2:

Вот что, я думаю, вы можете сделать.

  Dim numbers() as integer = {2,2,2,2,4,2,2,2,2,2} ' set 10% for 4, 90% for 2
 Dim r as new Random()
 Return numbers(r.Next(0, 10))
  

Комментарии:

1. Спасибо за ответ! Именно то, что я искал.