用 random.randint 进行整数除法
Posted
技术标签:
【中文标题】用 random.randint 进行整数除法【英文标题】:Integer Division with random.randint 【发布时间】:2017-02-25 20:34:37 【问题描述】:当以这种形式使用 random.randint() 时,我无法进行整数除法:
(random.randint(-40, 215) - -40) // (215 - -40)
这会返回 0,但是这样的结果会正确返回:
random.randint(3,5) - 2 // 2
如何正确格式化第一个方程以获得舍入整数而不是默认为 0?
【问题讨论】:
您的第一个等式是正确的:它将其转换为[0,1)
区间。由于您使用整数除法,因此结果始终为 0。
我犯了一个愚蠢的错误!
【参考方案1】:
如果有人在规范化整数时遇到这种情况,这里是一个介于 -40 和 215 之间的规范化:
(random.randint(-40,215) - -40.0) * 10 // (215.0 - -40.0) * 10
向威廉·范昂森致敬
【讨论】:
【参考方案2】:如果您想要非 int 答案
print (random.randint(-40, 215) +40.0) / (215+40)
结果始终位于(0,1)
之间,其步长始终为 0,因此它始终返回零。
【讨论】:
以上是关于用 random.randint 进行整数除法的主要内容,如果未能解决你的问题,请参考以下文章