2017-01-19 3 views
1

Я хочу использовать random.random() для генерации случайных поплавков и изменения вывода с помощью некоторой математики, чтобы в итоге вы получили от -100 до +100. Используя математику, я хочу использовать умножение и вычитание для генерации трех случайных чисел с плавающей запятой в диапазоне от -100 до +100.Случайные поплавки от -100 до 100 с использованием случайных случайных

вот мой код:

import random 
random_float = (random.random()) 
print("First random float between -100 and +100:", random_float - 10) 
print("Second random float between -100 and +100:", random_float * 70) 
print("Third random float between -100 and +100:", random_float * 100) 

вот мой выход:

First random float between -100 and +100: -9.932043497731886 
Second random float between -100 and +100: 4.756955158768027 
Third random float between -100 and +100: 6.795650226811468 

это выглядит правильно?

+2

Я смущен, почему вы все это делаете * 70 и -10? если вы хотите, чтобы три случайных поплавка от -100 до 100 просто повторяли одну и ту же вещь три раза «random_float» 100' – Bobby

+1

, каков ваш вопрос в точности? –

+0

@Bobby Не нужно было '200 * (random.random() - 0.5)'? – Tagc

ответ

5

random.uniform (а, б)

Вы могли бы просто использовать random.uniform(a,b):

random.uniform(-100,100) 

Если вы абсолютно хотите, чтобы рассчитать его самостоятельно:

random.random()*200-100 

Ваш код

Вот как вы можете интегрировать его в свой код. Обратите внимание, что вам нужно вызвать random три раза, если вы тусклый независимые случайные числа:

import random 

for ordinal in ['First', 'Second', 'Third']: 
    random_float = random.uniform(-100,100) 
    print "%s random float between -100 and +100: %f" % (ordinal, random_float) 

Он выводит:

First random float between -100 and +100: -67.216959 
Second random float between -100 and +100: 25.984499 
Third random float between -100 and +100: 60.656098 
+0

Это выглядит здорово, но проблема вызвана случайным случайным, спасибо – Supernova

+0

Хорошо, просто используйте «случайный». random() * 200-100'. –

0

С np.random.rand() выплевывает число между 0 и 1, что вам нужно сделать следующее :

import numpy as np 

random_float = 200*np.random.rand()-100 

Как правило, для генерации случайных чисел между а и Ь, вы должны сделать

(b-a)*np.random.rand() +a

+1

Ху? Зачем использовать дополнительную библиотеку типа 'numpy' только для случайного значения? – mkiever

+0

@mkiever Просто привычка, я думаю. Вы также можете использовать «случайный». –

0

Ваша последняя попытка random*100 отчасти права, но это будет генерировать только между 0 (включительно) до 100 (включительно). Если вы хотите от -100 до 100, вы должны сделать следующее:

random_float = random.random() 
print("Random float between -100 and +100:", (random_float * 200)-100) 

Однако другие 2 примера неверны. В первом примере ваши номера всегда будут находиться в интервале [-10.0, -9.0). Во втором примере ваши номера всегда будут находиться в интервале [0,0, 70,0]. Конечно, цифры будут случайными в этих диапазонах, но они не будут находиться в пределах диапазона -100 до 100.

Если вы хотите получить 3 случайных числа в одном диапазоне (от -100 до 100), вам действительно нужно позвонить random.random() три раза.

+0

назовите его три раза с той же формулой? (random_float * 200) -100) проблема попросила использовать вычитание и умножение, но это выглядит очень хорошо, спасибо – Supernova

+0

Я пробовал это, и мне всегда кажется, что он работает с диапазоном, который я запускал, как 2 раза, и диапазон выходит нормально – Supernova

+0

import random random_float = random.random() print («Первый случайный поплавок между -100 и +100:», (random_float * 200) -100) print («Второй случайный поплавок от -100 до +100:» , (random_float * 150) -100) print («Третий случайный поплавок между -100 и +100:», (random_float * 100) -100) – Supernova

Смежные вопросы