我有一个像这样的随机函数:
Class Ville:
timestamp = 0
def __init__(self, nb_de_cyclistes, Prestataire):
self.timestamp =0
def reveil(self):
self.timestamp += 1
list(map(lambda cycliste :cycliste.avancer(self.timestamp), self.cyclistes))
def faire_avancer(cycliste):
cycliste.avancer(Ville.timestamp)
def reveil_multiproc(self, n_jobs=1):
import multiprocessing
self.timestamp += 1
Ville.timestamp = self.timestamp
pool = multiprocessing.Pool(n_jobs)
pool.map(Ville.faire_avancer, self.cyclistes)
有了这个,我可以得到a和b之间的随机数。
现在,我想要a和b之间的随机数是5的倍数,如下所示:
def rand_int(a, b):
res = random.random()
diff = b - a
res = a + (diff * res)
return int(res)
输出应为以下之一:15,20,25,30 ... 85,90,95,100
答案 0 :(得分:0)
:: EDIT :: 问题被重新表述,使我原来的答案是错误的。
要获取12到100之间的随机数,但输出会四舍五入到最接近的5。请注意,def mode_liste (lis_resultat):
"""lis_resultat: sorted list"""
d=0
e=0
for i in range (len(lis_resultat)-1,1,-1):
if (lis_resultat[i]==lis_resultat[i-1]):
e+=1
else:
if (d<=e):
res=lis_resultat[i-1]
d=e
e=0
return res
等于10。原始示例将“ 15”列为第一个示例输出。
round(12/5)*5
答案 1 :(得分:0)
这应该有效:
a,b = 11, 27
k = 5
import random
from math import floor, ceil
random.randrange(k*ceil(a/k),k + (k*floor(b/k)),k) for i in range(c)
通过使用以下表达式生成100个数字来对此进行测试:
l = [random.randrange(k*ceil(a/k),k + (k*floor(b/k)),k) for i in range(100)]
print (l)
输出:
[15、15、20、15、20、20、15、15、15、25、25、15、15、15、25、25、15 25、15、25、15、25、15、20、15、20、25、20、15、15、25、15、15、15, 15、20、15、15、25、25、25、25、15、20、20、15、25、20、25、15、15 25、25、20、15、25、15、20、25、15、25、25、25、15、25、15、25、25, 25、25、20、20、15、20、20、15、15、15、20、25、20、15、25、25、15 20、20、20、15、15、15、20、25、15、25、20、20、25、25、15、25]