Je sais que je peux générer des flottants aléatoires avec rand (max). J'ai essayé de générer un flottant dans une gamme, cela ne devrait pas être difficile. Mais par exemple rand (1.4512) renvoie 0, donc rand ne calcule pas avec des flottants. Maintenant, j'ai essayé une petite astuce, en convertissant la chose en nombre entier et après avoir randomisé un nombre approprié dans ma gamme désirée, en le calculant de nouveau à un flotteur .. qui ne fonctionne pas.Comment créer au mieux un flottant aléatoire dans une plage entre deux flotteurs
Ma question est comment faire cela d'une meilleure façon. S'il n'y a pas de meilleur moyen, pourquoi celui-ci ne fonctionne-t-il pas? (Peut-être qu'il est trop tard pour moi, j'aurais dû commencer à dormir il y a 2 heures ..). Le tout vise à être une méthode de calcul d'un champ "position" pour les enregistrements de base de données afin que les utilisateurs puissent les commander manuellement. Je n'ai jamais fait quelque chose comme ça avant, peut-être que quelqu'un peut me suggérer une meilleure solution.
Voici le code à ce jour:
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
Merci!
Si les réponses ci-dessous sont inacceptables, pourriez-vous s'il vous plaît préciser le problème? – Josh
Merci à tous pour vos réponses, propre et bien expliqué – pduersteler
La réponse de @ sandor_bedo est probablement la meilleure ici: 'rand (-34.0..53.8) ' – Automatico