Python中的随机生成器函数

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],

我从九月份开始学习Java,但一位教授给我一个科学课程的作业,用Python创建一个程序,该程序将使用最大值和最小值以及这个球体内的15个随机点(x,y,z)生成一个随机直径

我需要制作一个随机数生成器,生成一个介于0.0和1.0之间的数字,这样我就可以将它插入到我的公式中,找到一个随机直径。如果随机数为RN,则为:[(RN*(max-min))+min]

首先,我使用了这个随机函数:

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