for i in 1..numAthletes
randomNum = 0;
runningTotal = 0;
randomNum = rand(30..89);
athleteTimes['swim'] = randomNum;
runningTotal += randomNum;
randomNum = rand(90..119);
athleteTimes['run'] = randomNum;
runningTotal += randomNum;
randomNum = rand(120..360);
athleteTimes['bike'] = randomNum;
runningTotal += randomNum;
athleteTimes['total'] = runningTotal
athleteTotal[i] = athleteTimes;
end
Когда я запускаю приведенный выше код, я продолжаю получать одинаковые значения для хэша, хранящегося внутри последующего хэша. Я предполагаю, что мне нужно что-то сделать, чтобы сбросить/перезагрузить генератор случайных чисел, но я не уверен, как это сделать в Ruby.Продолжайте получать одинаковые значения для rand (n1..n2) в цикле
Я пробовал использовать r = Random.new
и с помощью r.rand(n1..n2)
, надеясь, что это заставит генератор быть перенаселенным, но это не так.
Я слишком долго бил головой об этом, что очевидное ускользнуло от меня. Это потрясающе. Также я смог просто переместить мой 'athleteTimes = Hash.new (0);' внутри цикла, и он также исправил его. – defaultNINJA
Отлично. Я рад, что смогу помочь. Я предлагаю вам попробовать следовать обычным [стилям кодирования Ruby] (https://github.com/bbatsov/ruby-style-guide). Ваш код больше похож на JavaScript, чем на Ruby ... – spickermann
Благодаря @spickermann, у меня есть основа в Java, C++, PHP, JavaScript и т. Д. Это мой первый провал в Ruby. Я посмотрю ссылку, которую вы предоставили. – defaultNINJA