‘壹’ 笔试python总提示返回值非零是为啥
估计你是a%b那个? b不能为0啊,错误了 程序就跳出了 所以返回非0
‘贰’ python3 输入位数 输出没有0的正整数随机数
importrandom
bit=int(input('Inputanum:'))
digits=[random.randint(1,9)for_inrange(bit)]#随机生成bit位1~9之间的随机数
num=int(''.join(map(str,digits)))#转换为str>链接成一个字符串>转换为整数
print(num)
‘叁’ python 随机数
##importrandom
##sticks=21
##whilesticks>0:
##print('剩下',sticks)
##sticks_taken=int(input("拿棍子(1-4):"))
##computer_taken=int(random.randint(1,4))
##ifsticks==1:
##print('youlose')
##break
##ifsticks_taken>4orsticks_taken<=0:
##print('error')
##continue
##print('电脑拿了%s'%(5-sticks_taken),' ')
##sticks-=(sticks_taken+computer_taken)
##else:
##print('gameend')
"""
因不知道题意,这二个答案选哪个,你定。我觉得这题其实应
是你和电脑随机数在比赛。
"""
importrandom
sticks=21
whilesticks>0:
print('剩下',sticks)
sticks_taken=int(input("拿棍子(1-4):"))
computer_taken=int(random.randint(1,4))
ifsticks==1:
print('youlose')
break
ifsticks_taken>4orsticks_taken<=0:
print('error')
continue
print('电脑拿了%s'%computer_taken,' ')
sticks-=(sticks_taken+computer_taken)
else:
print('gameend')
‘肆’ 关于python非零返回问题
你这里有如下几个错误:
提交的应当是代码,而不是示例。
">>>"是python shell中的提示符,不应当包含在代码的每一行;
在PTA上,所有需要接受输入的方,要使用无提示的input();
PTA的Python3不接受中文,代码中不要有中文内容,注释中是否可以包含中文没有测试过。
‘伍’ python里面如何生成随机数
random模块
随机整数:random.randint(a,b):返回随机整数x,a<=x<=b
random.randrange(start,stop,[,step]):返回一个范围在(start,stop,step)之间的随机整数,不包括结束值。
随机实数:random.random( ):返回0到1之间的浮点数
random.uniform(a,b):返回指定范围内的浮点数。
‘陆’ python如何生成随机数、随机字符、随机字符串
import random
import string
# 返回给定数量的随机数列表
lst = random.sample(source, n)
参数source:从source中随机选择,n为数量
下面字符串可供选择
问题简单了
【生成n个随机数】
numlst = [int(i) for i in random.sample(string.digits, n)]
numlst为随机数整形列表
【生成n个随机字符】
strlst = [i for i in random.sample(string.ascii_letters, n)]
返回一个随机字符列表strlst。
strlst = [i for i in random.sample(string.ascii_letters, n)]
把随机字符连接起来就可以了
print(''.join(strlst))
如果需要生成的随机字符、字符串带有符号,则使用string.printable作为参数source传递给random.sample(source, n)中即可。
望采纳!
‘柒’ 用python生成随机数的几种方法
1 从给定参数的正态分布中生成随机数
当考虑从正态分布中生成随机数时,应当首先知道正态分布的均值和方差(标准差),有了这些,就可以调用python中现有的模块和函数来生成随机数了。这里调用了Numpy模块中的random.normal函数,由于逻辑非参简单,所有直接贴上代码如下:
import numpy as np# 定义从正态分布中获取随机数的函数def get_normal_random_number(loc, scale): """ :param loc: 正态分布的均值 :param scale: 正态分布的标准差 :return:从正态分布中产生的随机数 """ # 正态分布中的随机数生成 number = np.random.normal(loc=loc, scale=scale) # 返回值 return number# 主模块if __name__ == "__main__": # 函数调用 n = get_normal_random_number(loc=2, scale=2) # 打印结果 print(n) # 结果:3.275192443463058
2 从给定参数的均匀分布中获取随机数的函数
考虑从均匀分布中获取随机数的时候,要事先知道均匀分布的下界和上界,然后调用Numpy模块的random.uniform函数生成随机数。
import numpy as np# 定义从均匀分布中获取随机数的函数def get_uniform_random_number(low, high): """ :param low: 均匀分布的下界 :param high: 均匀分布的上界 :return: 从均匀分布中产生的随机数 """ # 均匀分布的随机数生成 number = np.random.uniform(low, high) # 返回值 return number# 主模块if __name__ == "__main__": # 函数调用 n = get_uniform_random_number(low=2, high=4) # 打印结果 print(n) # 结果:2.4462417140153114
3 按照指定概率生成随机数
有时候我们需要按照指定的概率生成随机数,比如已知盒子中每种颜色的球的比例,猜测下一次取出的球的颜色。在这里介绍的问题和上面的例子相似,要求给定一个概率列表,从列表对应的数字列表或区间列表中生成随机数,分两部分讨论。
3.1 按照指定概率从数字列表中随机抽取数字
假设给定一个数字列表和一个与之对应的概率列表,两个列表对应位置的元素组成的元组即表示该数字在数字列表中以多大的概率出现,那么如何根据这些已知条件从数字列表中按概率抽取随机数呢?在这里我们考虑用均匀分布来模拟概率,代码如下:
import numpy as npimport random# 定义从均匀分布中获取随机数的函数def get_uniform_random_number(low, high): """ :param low: 均匀分布的下界 :param high: 均匀分布的上界 :return: 从均匀分布中产生的随机数 """ # 均匀分布的随机数生成 number = np.random.uniform(low, high) # 返回值 return number# 定义从一个数字列表中以一定的概率取出对应区间中数字的函数def get_number_by_pro(number_list, pro_list): """ :param number_list:数字列表 :param pro_list:数字对应的概率列表 :return:按概率从数字列表中抽取的数字 """ # 用均匀分布中的样本值来模拟概率 x = random.uniform(0, 1) # 累积概率 cum_pro = 0.0 # 将可迭代对象打包成元组列表 for number, number_pro in zip(number_list, pro_list): cum_pro += number_pro if x < cum_pro: # 返回值 return number# 主模块if __name__ == "__main__": # 数字列表 num_list = [1, 2, 3, 4, 5] # 对应的概率列表 pr_list = [0.1, 0.3, 0.1, 0.4, 0.1] # 函数调用 n = get_number_by_pro(number_list=num_list, pro_list=pr_list) # 打印结果 print(n) # 结果:1
3.2 按照指定概率从区间列表中的某个区间内生成随机数
给定一个区间列表和一个与之对应的概率列表,两个列表相应位置的元素组成的元组即表示某数字出现在某区间内的概率是多少,已知这些,我们如何生成随机数呢?这里我们通过两次使用均匀分布达到目的,代码如下:
import numpy as npimport random# 定义从均匀分布中获取随机数的函数def get_uniform_random_number(low, high): """ :param low: 均匀分布的下界 :param high: 均匀分布的上界 :return: 从均匀分布中产生的随机数 """ # 均匀分布的随机数生成 number = np.random.uniform(low, high) # 返回值 return number# 定义从一个数字列表中以一定的概率取出对应区间中数字的函数def get_number_by_pro(number_list, pro_list): """ :param number_list:数字列表 :param pro_list:数字对应的概率列表 :return:按概率从数字列表中抽取的数字 """ # 用均匀分布中的样本值来模拟概率 x = random.uniform(0, 1) # 累积概率 cum_pro = 0.0 # 将可迭代对象打包成元组列表 for number, number_pro in zip(number_list, pro_list): cum_pro += number_pro if x < cum_pro: # 从区间[number. number - 1]上随机抽取一个值 num = get_uniform_random_number(number, number - 1) # 返回值 return num# 主模块if __name__ == "__main__": # 数字列表 num_list = [1, 2, 3, 4, 5] # 对应的概率列表 pr_list = [0.1, 0.3, 0.1, 0.4, 0.1] # 函数调用 n = get_number_by_pro(number_list=num_list, pro_list=pr_list) # 打印结果 print(n) # 结果:3.49683787011193
‘捌’ python用生成随机数的方法
import random
random.randint(1,10) #取1~10之间随机数。
‘玖’ python中random什么意思
Random意思是返回一个0~num-1之间的随机数。random(num)是在stdlib.h中的一个宏定义。num和函数返回值都是整型数。
如需要在一个random()序列上生成真正意义的随机数,在执行其子序列时使用randomSeed()函数预设一个绝对的随机输入,例如在一个断开引脚上的analogRead()函数的返回值。
Random的作用
Random使用之前需要使用Randomize语句进行随机数种子的初始化。RANDOM产生的是伪随机数或者说是用一种复杂的方法计算得到的序列值,因此每次运算时需要一个不同的种子值。种子值不同,得到的序列值也不同。因此也就是真正的随机数了。
RANDOM产生的是伪随机数或者说是用一种复杂的方法计算得到的序列值,因此每次运算时需要一个不同的种子值。种子值不同,得到的序列值也不同。因此也就是真正的随机数了。这也正是RANDOMIZE随机初始化的作用。 VB里用 NEW RANDOM()来表示初始化。
‘拾’ python中的随机数是怎么实现的
PYTHON中的伪随机数发生器用的是梅森旋转算法。
梅森旋转算法(Mersenne twister)是一个伪随机数发生算法。由松本真和西村拓士在1997年开发,基于有限二进制字段上的矩阵线性递归。可以快速产生高质量的伪随机数,修正了古典随机数发生算法的很多缺陷。
梅森旋转算法是R、Python、Ruby、IDL、Free Pascal、PHP、Maple、Matlab、GNU多重精度运算库和GSL的默认伪随机数产生器。从C++11开始,C++也可以使用这种算法。
整个算法主要分为三个阶段:获得基础的梅森旋转链;对于旋转链进行旋转算法;对于旋转算法所得的结果进行处理。
算法实现的过程中,参数的选取取决于梅森素数,故此得名。
梅森素数由梅森数而来。所谓梅森数,是指形如2↑p-1的一类数,其中指数p是素数,常记为Mp 。如果梅森数是素数,就称为梅森素数。
例如4-1=3,8-1=7,16-1=15(不是素数),32-1=31,64-1=63(不是素数)等等。