生成一个落入多个范围的随机数

iKl*_*lsR 2 python random

我怎么会去的python是生成一个随机整数随机的,但落入一个乘法表(表时间)范围本身以及由我指定的值来确定?

例.假设我想生成10到100之间的随机数,但它应该是7的倍数.可能的返回值可能是14, 28, 49, 77等等.

该函数的模型可能如下所示:

def gen_random(f, min, max):
    #generate random number between min and max that is a multiple of fac
Run Code Online (Sandbox Code Playgroud)

Python的random模块能够做到这一点吗?

Amb*_*ber 9

为什么不生成一个乘数fac,给你一个在你的界限之间的数字?

import math
import random

def rand_multiple(fac, a, b):
    """Returns a random multiple of fac between a and b."""
    min_multi = math.ceil(float(a) / fac)
    max_multi = math.floor(float(b) / fac)
    return fac * random.randint(min_multi, max_multi)
Run Code Online (Sandbox Code Playgroud)

  • 后来有人读了这个答案,他/她会想,*我想知道其他答案是什么.* (2认同)