Python中的随机生成器函数
我从九月份开始学习Java,但一位教授给我一个科学课程的作业,用Python创建一个程序,该程序将使用最大值和最小值以及这个球体内的15个随机点(x,y,z)生成一个随机直径 我需要制作一个随机数生成器,生成一个介于0.0和1.0之间的数字,这样我就可以将它插入到我的公式中,找到一个随机直径。如果随机数为RN,则为:[(RN*(max-min))+min] 首先,我使用了这个随机函数:Python中的随机生成器函数,python,random,command,spyder,pythonxy,Python,Random,Command,Spyder,Pythonxy,我从九月份开始学习Java,但一位教授给我一个科学课程的作业,用Python创建一个程序,该程序将使用最大值和最小值以及这个球体内的15个随机点(x,y,z)生成一个随机直径 我需要制作一个随机数生成器,生成一个介于0.0和1.0之间的数字,这样我就可以将它插入到我的公式中,找到一个随机直径。如果随机数为RN,则为:[(RN*(max-min))+min] 首先,我使用了这个随机函数: from random import* RN=random(): 问题是,这个随机函数是[0.0,1.0],
from random import*
RN=random():
问题是,这个随机函数是[0.0,1.0],换句话说,它不包括1.0。
如何创建包含1.0的函数
另外,如果你不介意的话,你能帮我找到y和z坐标吗?我知道如何找到x
y值的公式是y=+或-sqrt(r^2-x^2)(也可以随机生成)。
我会得到x值,它是随机函数[0.0-1.0]的结果,半径是我直径的一半。我是Python的初学者,如何初始化x和y,并将上面的公式放进去
z的公式类似,z=+或-sqrt(-x^2-y^2+r^2)(也可以随机生成)
这些是使用圆的公式:
半径:r=sqrt(x^2+y^2)
球体:r=sqrt(x^2+y^2+z^2)
如果您能回答我问题的任何部分,我将不胜感激,非常感谢您抽出时间阅读此文!!
**顺便说一句,我是usinHi!我从9月份开始学习Java,但一位教授给我一个科学课程的作业,用Python创建一个程序,该程序将使用最大值和最小值生成一个随机直径,以及这个球体内的15个随机点(x,y,z)
我需要制作一个随机数生成器,生成一个介于0.0和1.0之间的数字,这样我就可以将它插入我的公式中,以找到一个随机直径。如果随机数是RN,它将是:[(RN*(max-min))+min]
首先,我使用了这个随机函数:
from random import*
RN=random():
从随机导入*
RN=random():
问题是,这个随机函数是[0.0,1.0],换句话说,它不包括1.0。
如何创建包含1.0的函数
另外,如果你不介意的话,你能帮我找到y和z坐标吗?我知道如何找到x
y值的公式是y=+或-sqrt(r^2-x^2)(也可以随机生成)。
我会得到x值,它是随机函数[0.0-1.0]的结果,半径是我直径的一半。我是Python的初学者,如何初始化x和y,并将上面的公式放进去
z的公式类似,z=+或-sqrt(-x^2-y^2+r^2)(也可以随机生成)
这些是使用圆的公式:
半径:r=sqrt(x^2+y^2)
球体:r=sqrt(x^2+y^2+z^2)
如果您能回答我问题的任何部分,我将不胜感激,非常感谢您抽出时间阅读此文
**顺便说一下,我使用python x,y spyder!作为随机数生成器的答案:
RN = random.uniform(a, b)
返回一个随机整数N,这样一个
random.uniform
将给出一个在给定最小值和最大值之间均匀分布的随机数
只需生成随机点并检查它们是否在球体内。如果不在球体内,则丢弃它们并重试
import math
import random
def generate_points(n_points, min_diameter=0, max_diameter=1):
diameter = random.uniform(min_diameter, max_diameter)
radius = diameter / 2
count = 0
while count < n_points:
x, y, z = [random.uniform(-radius, radius) for _ in range(3)]
distance = math.sqrt(x * x + y * y + z * z)
if distance <= radius:
yield (x, y, z)
count += 1
for x, y, z in generate_points(10):
print x, y, z
有关分发的更多信息,请参见此处:
(这是关于球体表面上的点,因此可能没有那么有用)您可以使用
random.range
random.randrange(-15,15,.1)
这将找到一个介于-15和15之间的数字,它可以被0.1整除。我将它用于一个随机生成器,它可以工作,我不确定它是否是您正在寻找的正确数字,但我希望它有帮助。
import random
maths_operator_list=['+','-','*']
maths_operator = random.choice(maths_operator_list)
number_one = random.randint(0,20)
number_two = random.randint(0,20)
correct_answer = 0
print(str(number_one), str(maths_operator), number_two)
if maths_operator == '+':
correct_answer = number_one + number_two
elif maths_operator == '-':
correct_answer = number_one - number_two
elif maths_operator == '*':
correct_answer = number_one * number_two
print(correct_answer)
random.randrange
只能有整数参数。更好的方法是random.randrange(-1501501)/10
。