Как найти максимальное значение набора случайно сгенерированных чисел, которое делится на 7? - PullRequest
0 голосов
/ 07 мая 2020

Я знаю, что это может быть очень простой вопрос, но я не могу понять его. В вопросе предлагается сгенерировать 357 случайных чисел от 8 до 254 (включительно) и распечатать наибольшее сгенерированное число, которое точно делится на 7.

Я написал эту программу:

import random

def main():
    for x in range(357):
      print (random.randint(8,254)*7),

print

main()

которая генерирует числа, но я не знаю, как получить из них максимальное число. Буду очень признателен за любую помощь ?

Ответы [ 3 ]

2 голосов
/ 07 мая 2020

Вы можете использовать понимание списка для генерации случайных чисел, а затем применить фильтр, чтобы сохранить только те, которые делятся на 7:

import random

number = max(filter(lambda n: n % 7 == 0, [random.randint(8,254) for _ in range(357)]))
0 голосов
/ 07 мая 2020

Вы можете использовать max с параметром key.

max((random.randint(8,254) for _ in range(357)),key =lambda x: x if x%7==0 else -1)
  • (random.randint(8,254) for _ in range(357)) - генератор для создания 357 случайных значений от 8 до 254 .

  • key =lambda x: x if x%7==0 else -1 если число делится, верните его иначе -1. Таким образом, вы получите максимальное значение, кратное 7.

0 голосов
/ 07 мая 2020

Краткие однострочные строки - это здорово, но вот альтернативный подход, который несколько отдает приоритет удобочитаемости для ссылки OP. А именно, мы сохраняем случайно сгенерированные числа в списке и выполняем сортировку:

import random

def seven_max():
    nums = [random.randint(8,254) for _ in range(357)]
    nums.sort(reverse=True)
    for num in nums:
        if num % 7 == 0:
            return num
    return False # No such number

Сначала мы создаем список случайных чисел, определяемый как nums. Затем мы сортируем список в обратном порядке, чтобы сначала были более крупные элементы. Проходя oop через этот отсортированный массив, мы проверяем, делится ли число на 7. Если да, мы возвращаем это число; если ни одно число не удовлетворяет этому условию, мы возвращаем False.

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