случайные числа с начальным значением

#c# #algorithm #unity3d

#c# #алгоритм #unity3d

Вопрос:

В настоящее время я разрабатываю игру с использованием C # и Unity3d для моего школьного проекта

Я пытаюсь выяснить, как генерировать случайные числа на основе определенного числа. Моя игра работает следующим образом, например, вам было присвоено базовое число «6», мне нужно несколько советов о том, как сгенерировать возможную комбинацию чисел на основе числа «6», используя сложение, например, оно будет генерировать числа 2 2 2 = 6 или 1 1 4 = 6 или 3 3 = 6 и так далее

В настоящее время я использую этот код для генерации случайного числа, но я понятия не имею, как заставить его генерировать случайное число на основе начального числа

 randNumber = Mathf.RoundToInt(Random.Range(0.0f,8.0f));
  

нужна помощь thx заранее, извините, просто новичок

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

1. Не могли бы вы пояснить, о чем вы спрашиваете? Вы спрашиваете о способе генерации случайных сумм, которые в сумме составляют определенное число, или вы спрашиваете, как заполнить генератор случайных чисел?

2. @simeon pilgrim, если быть точным, мне нужно сгенерировать возможную комбинацию случайных чисел, например, на основе базового числа (процесс сложения). В моей игре уровень 1. базовое число равно «5» (мне нужно сгенерировать возможные случайные числа, которые при суммировании дадут значение 5) (2 3=5) (1 2 2=5) (1 1 1 2=5) итак что, кстати, спасибо за ответ!! извините, если это очень запутанно

3. но если ваше целевое число является int и находится в диапазоне от 0 до 8, то это фиксированное количество значений, которые суммируются для каждой цели. Никаких случайных чисел. Итак, ваша «проблема» связана с unity и случайным числом, если не удалить этот материал, ваша «проблема» заключается в поиске чисел, сумма которых равна X, если не удалить это. И по «проблеме», с чем вам нужна помощь, вся моя домашняя работа не является правильным ответом.

Ответ №1:

Случайным образом выберите число от 1 до числа, добавьте его в список, а затем вычтите полученное число. Повторяйте, пока число не достигнет 0. Вот пример:

   static Random rand = new Random();

  private static List<int> GetRandomNums(int number)
  {
     List<int> list = new List<int>();
     while (number != 0)
     {
        int addend = rand.Next(1, number   1);
        list.Add(addend);
        number -= addend;
     }
     return list;
  }
  

Ответ №2:

Ниже приведен псевдокод :-

 randlist = []

int target = 5;

while(target > 0) {

 int rand = Random(1,target);
 target = target-rand;
 randlist.add(rand);
}

print randlist
  

Примечание: — Random(1,target) генерирует случайное число между (1, цель) оба включительно.