【问题标题】:What does these number in random no. generator do?这些数字在随机数中是什么?发电机呢?
【发布时间】:2023-03-11 21:49:02
【问题描述】:

基本上我了解程序,但不了解此处使用的数学/数字。

import random

def r_int():
  x = int(abs(10 * random.random() % 20))
  return x

我发现这相当于random.randint(0,9)%20 在这里做什么?

【问题讨论】:

  • %modulo operator
  • 将随机数限制在 0 到 19 之间。查找模运算符
  • 它什么也不做,因为10 * random.random() 不能大于 10。
  • 编写该代码的人不知道他们在做什么...除非您在此处复制一两个错误。

标签: python math random


【解决方案1】:

%modulo operator;它返回第一个操作数上除法运算的余数

% 20 表示:返回第一个操作数除以 20 的余数;这始终是 [0.0, 20.0) 范围内的数字(包括 0,不包括 20)。

这使得abs() 调用完全多余,因为结果总是肯定的。并不是说模运算符也有任何意义,因为10 * random.random() 始终是 [0.0, 10.0) 范围内的浮点数(因此小于 10)。任何低于 20.0 的数(模 20)都是相同的数。

他们本可以使用random.randrange(10) 并避免所有这些混乱。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 2016-06-04
    • 2011-05-21
    • 2016-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多