我是Python的新手,我正在尝试为项目创建程序 - 首先,我需要在数字0-1.0之间生成一个点,包括0和1.0([0,1.0]).我搜索了python库中的函数(https://docs.python.org/2/library/random.html),我找到了这个函数:
random.random()
Run Code Online (Sandbox Code Playgroud)
这将返回范围[0.0,1.0)中的下一个随机浮点数.这是一个问题,因为它不包括1.尽管实际产生1的机会无论如何都非常小,但它仍然很重要,因为这是一个科学程序,将用于更大的数据收集.
我也发现了这个功能:
rand.randint
Run Code Online (Sandbox Code Playgroud)
这将返回一个整数,这也是一个问题.
我研究了网站和之前提出的问题,发现这个功能:
random.uniform(a, b)
Run Code Online (Sandbox Code Playgroud)
只会返回一个大于或等于a且小于b的数字.
有谁知道如何在python上创建一个包含[0,1.0]的随机函数?
如果我对这些信息有误,请纠正我.谢谢.
*随机数表示球体上三维点的x值.
这样的事你能凑合吗?
random.randint(0, 1000) / 1000.0
Run Code Online (Sandbox Code Playgroud)
或者更正式地说:
precision = 3
randomNumber = random.randint(0, 10 ** precision) / float(10 ** precision)
Run Code Online (Sandbox Code Playgroud)
难道只是:
list_rnd=[random.random() for i in range(_number_of_numbers_you_want)]
list_rnd=[item/max(list_rnd) for item in list_rnd]
Run Code Online (Sandbox Code Playgroud)
生成随机数列表并将其除以最大值。结果列表仍然均匀分布。