【问题标题】:Trying to understand this bit of Matlab code试图理解这段 Matlab 代码
【发布时间】:2019-08-30 00:18:56
【问题描述】:

我的一个朋友在 Matlab 中编写了 Warlords 战斗赔率计算器,我想在 Python 3 中复制它。我对 Python 不是很有经验,根本不了解 Matlab,但我可以看到是什么发生在 Matlab 代码中。不过,这一行让我有点困惑。

r1 = ceil((rand*10));

这是否要求从 0 到 1 的随机浮点数的上限,然后乘以 10?

【问题讨论】:

  • 相反,它是将随机浮点数乘以 10,然后取上限函数
  • 这真的是 MATLAB 代码吗?它在 Python 中也应该有效
  • @roganjosh:任何足够短的代码在任何编程语言中都是有效的。 :)
  • @roganjosh 我认为对于 python,您需要导入数学,然后将其称为 math.ceil() ... rand 的类似想法。 (我相信你知道这一点,所以为了这个线程的未来读者的利益而提及它。)
  • @AlexS1 是的。但是你也可以做from math import ceil,所以这里面没有什么不是有效的python。分号被忽略

标签: python matlab random ceil


【解决方案1】:

rand 在区间(0,1) 中给出一个随机数,所以rand*10(0,10) 中给出一个随机数(概率一致)。 ceil((rand*10)) 给出一个介于 110 之间的随机整数。

对应的Python是这样的:

random.randint(1,10)

要使上述代码正常工作,您需要在脚本前面使用import random

【讨论】:

  • 未指定,区间为0和1?这就是让我失望的原因。感谢所有的回复。显然,我本可以在 Python 中运行代码并以这种方式计算出来
猜你喜欢
  • 2019-02-25
  • 2012-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-04
  • 1970-01-01
相关资源
最近更新 更多