Математическая функция, чтобы найти наибольшее кратное число в диапазоне - PullRequest
0 голосов
/ 28 августа 2018

Я хочу знать, есть ли математическое выражение, которое я могу использовать, чтобы найти это отношение между двумя числами.

Ниже приведены некоторые примеры ввода и ожидаемого вывода:

Input    Multiple   Result
4        3          3
6        3          6
8        3          6
4        4          4
12       4          12
16       5          15

Кроме того, приведенные ниже выражения от Wolfram Alpha показывают мне ожидаемый результат, но, поскольку они не расширяют объяснение того, как это сделать, я не могу учиться у них ...

Наибольшее кратное 4 из 10

Наибольшее кратное 4 из 12

Ответы [ 4 ]

0 голосов
/ 28 августа 2018

Это может быть тривиально, но чертовски легко понять. Учитывать, если множественное число отрицательное или ноль

Multiple=[3,3,3,4,4,5,0,-5]
Input=[4,6,8,4,12,16,1,8]
Result=[]
for input,multiple in zip(Input,Multiple):
    if(multiple):
        Result.append((range(multiple,input+1,abs(multiple)))[-1])
    else:
        Result.append(0)
print(Result)

Выход:

[3, 6, 6, 4, 12, 15, 0, 5]
0 голосов
/ 28 августа 2018

Вы можете использовать для этого модуль. Например, чтобы вычислить наибольшее кратное 4, которое меньше или равно 13:

13 % 4 = 1
13 - 1 = 12

в python, это может выглядеть так:

def biggest_multiple(multiple_of, input_number):
    return input_number - input_number % multiple_of

Таким образом, вы используете его как:

$ biggest_multiple(4, 9)
8
$ biggest_multiple(4, 12)
12
0 голосов
/ 28 августа 2018

Вот как бы я это сделал:

return int(input / multiple) * multiple

Он усекает деление, так что вы получите целое число, которое вы можете умножить.

0 голосов
/ 28 августа 2018

попробуй с // и % операторами!

для //, вы бы сделали

Result = (Input // Multiple) * Multiple

Таким образом, вы получаете, сколько раз многократные подгонки для ввода - это число затем умножается на само умножение и, следовательно, дает ожидаемые результаты!

РЕДАКТИРОВАТЬ: как это сделать по модулю %?

Result = Input - (Input % Multiple)

взято из ответа MCO!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...