#python #matlab #random #ceil
#python #matlab #Случайный #ceil
Вопрос:
Мой друг написал калькулятор боевых шансов Warlords в Matlab, который я хотел бы воспроизвести в Python 3. Я не очень разбираюсь в Python и вообще не знаю Matlab, но я могу вроде как видеть, что происходит в коде Matlab. Эта одна строка меня немного смутила.
r1 = ceil((rand*10));
Запрашивает ли это потолок случайного числа с плавающей запятой от 0-1, а затем умножается на 10?
Комментарии:
1. напротив, он умножает случайное число с плавающей запятой на 10, а затем использует функцию потолка
2. Это действительно код MATLAB? Он должен быть действителен и в Python
3. @roganjosh: любой достаточно короткий фрагмент кода допустим на любом языке программирования. 🙂
4. @roganjosh Я думаю, что для python вам нужно будет импортировать математику, а затем вызвать ее как math.ceil() … аналогичная идея для rand. (Я уверен, что вы это знаете, поэтому упоминаю об этом в интересах будущих читателей этой темы.)
5. @AlexS1 Верно. Но вы также можете сделать
from math import ceil
так, чтобы в этом не было ничего, что не могло бы быть действительным python. Точка с запятой игнорируется
Ответ №1:
rand выдает случайное число в интервале (0,1)
, поэтому rand*10
выдает случайное число в (0,10)
(с одинаковой вероятностью). ceil((rand*10))
выдает случайное целое число от 1
и 10
включительно.
Таким образом, соответствующий Python:
random.randint(1,10)
Чтобы заставить приведенный выше код работать, вам потребуется import random
ранее в сценарии.
Комментарии:
1. Не указано, интервал равен 0 и 1? Это то, что меня сбило с толку. Спасибо за все ответы. По-видимому, я мог бы просто запустить код на Python и понять это таким образом