popopoppop2016
28.10.2020 17:23

Дан алгоритм на языке грис шаг шаг шаг поворот поворот поворот поворот шаг прыжок поворот шаг шаг шаг поворот поворот поворот шаг прыжок поворот шаг шаг шаг поворот поворот поворот поворот шаг прыжок поворот
(запишите этот алгоритм с использованием процедуры

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Надежда72
28.04.2020 04:27

import random

# Определяем список учеников

student_list = ["Александр", "София", "Мария", "Максим", "Михаил", "Артём", "Анна", "Даниил", "Иван", "Виктория",

               "Алиса", "Анастасия", "Дмитрий", "Полина", "Елизавета", "Александра", "Дарья", "Екатерина", "Кирилл"]

# Создаем цикл while

while True:

   # Создаем пользовательский ввод

   sort_type = input("Выберите метод сортировки учеников (r - случайно, a - в алфавитном порядке, ar - в алфавитном "

                     "порядке обратно): ")

   # Если выбран метод сортировки "r", сортируем список случайно и прерываем выполнение текущего цикла

   if sort_type == "r":

       random.shuffle(student_list)

       print(student_list)

       break

   # Если выбран метод сортировки "a", сортируем список в алфавитном порядке и прерываем выполнение текущего цикла

   elif sort_type == "a":

       student_list.sort()

       print(student_list)

       break

   # Если выбран метод сортировки "ar", сортируем список в алфавитном порядке обратно и прерываем выполнение

   # текущего цикла

   elif sort_type == "ar":

       student_list.sort(reverse=True)

       print(student_list)

       break

   # Если выбран неопределенный сортировки, выводим ошибку и возвращаемся к пользовательскому вводу

   else:

       print("Неизвестный метод сортировки.")


задачу по инфе на языке PYTHON! import random x = random.randint(1, 10) Преподаватель опрашивает уче
0,0(0 оценок)
Ответ:
DariaDosh
11.01.2023 11:22

Можно решить "по-умному". Можно "по-простому". По-умному интереснее решать на всяких C++. На python приятнее решать по-простому.

variants = []n = int(input("n = "))def silly(k):    variants = []    for ones in range(k + 1):        for twos in range(k // 2 + 1):            for fifth in range(k // 5 + 1):                for tenth in range(k // 10 + 1):                    s = tenth * 10 + fifth * 5 + twos * 2 + ones                    if s > k:                        break                    if s == k:                        variants.append((ones, twos, fifth, tenth))    return variantsprint("Количество вариантов: %d" % len(variants))for v in variants:    print("Рублями: %d; Двойками: %d; Пятёрками: %d; Десятками: %d." % v)

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

Есть другой подход. "Умный".

Выглядит он так.

def smart(variants, ones, twos=0, fifth=0, tenth=0):    v = (ones, twos, fifth, tenth)    if v not in variants:        variants.append(v)        if ones - 2 >= 0:            smart(variants, ones - 2, twos + 1, fifth, tenth)        if ones - 5 >= 0:            smart(variants, ones - 5, twos, fifth + 1, tenth)        if ones - 10 >= 0:            smart(variants, ones - 10, twos, fifth, tenth + 1)        return variants

Поясняю: Ясное дело, что сумму n можно описать как n монеток по 1 рублю. А все остальные варианты вытекают из этого путем отнятия 2, 5 или 10 рублей от исходной суммы и дописыванием единиц в соответствующие параметры. Такой подход позволяет избежать неправильных комбинаций, однако может генерировать дублирующие варианты. Чтобы этого избежать, проверяем наличие варианта в сохраненных.


Написать программу в питоне напишите пояснение к написанной программе
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота