Я знаю, что могу генерировать случайные числа с помощью rand (max). Я пытался создать плавающий диапазон, это не должно быть сложно. Но, например, rand (1.4512) возвращает 0, поэтому rand не рассчитывается с помощью float. Теперь я попробовал небольшой трюк, преобразовав вещь в целое число и после случайного выбора подходящего числа в моем желаемом диапазоне, вычислив его обратно до числа с плавающей запятой ... который не работает.
Мой вопрос: как сделать это лучше? Если нет лучшего способа, почему этот не работает? (Может быть, это слишком поздно для меня, я должен был заснуть 2 часа назад ..). Все это нацелено на то, чтобы вычислить поле «позиция» для записей базы данных, чтобы пользователи могли заказать их вручную. Я никогда раньше такого не делал, может, кто-нибудь подскажет мне лучшее решение.
Вот код на данный момент:
def calculate_position(@elements, index)
min = @elements[index].position
if @elements[index + 1].nil?
pos = min + 1
else
pos = min + (rand(@elements[index + 1].position * 10000000000) / 10000000000)
end
return pos
end
Спасибо!