profile
Размещено 5 лет назад по предмету Информатика от Yarik150220031

Вы хотите возвести данное число a в некоторую целочисленную степень n, но ваш калькулятор умеет только перемножать числа. Например, вы можете вычислить a2 = a × a, затемвыможетевычислитьa3 =a2 ×aилиa4 =a2 ×a2.
Вы можете по-разному организовать вычисление значения an. Например, вычислить a5 можно за 4 умножения:
1) a2 = a × a, 2) a3 = a2 × a, 3) a4 = a3 × a, 4) a5 = a4 × a.
Но можно вычислить a5 всего лишь за 3 умножения: 1) a2 = a × a,
2) a3 = a2 × a, 3) a5=a3×a2.
Вам необходимо определить, за какое минимальное число умножений можно вычислить следующие степени: 7, 15, 23, 63. Вычисление каждой из этих степеней должно быть независимо от остальных, то есть при вычислении 15-й степени нельзя использовать вычисления, проделанные ранее для вычисления 7-й степени. Вы решаете четыре независимые задачи – за какое минимальное число умножений можно вычислить 7-ю степень, 15-ю степень, 23-ю степень и 63-ю степень.
Ответ на это задание записывается в четырёх строках. Каждая строка должна содержать последовательность вычисления каждой из указанных степеней. Первая строка должна содержать последовательность вычисления 7-й степени, вторая строка – 15-й степени, третья строка – 23-й степени, четвертая строка – 63-й степени.
Каждая строка содержит через пробел несколько целых чисел – значения степеней в том порядке, в котором они вычисляются. Например, для вычисления 5-й степени решение можно записать в виде строки
23 5или
2 4 5,
что означает, что последовательно вычисляются степени a2, a3, a5 (одно возможное решение) или a2, a4, a5 (другое возможное решение). Такм образом, каждая строка должна начинаться числом 2, а заканчиваться тем значением степени, которое нужно вычислить (7, 15, 23, 63).
Чем меньше операций умножения вы будете использовать, тем больше баллов вы получите, при условии, что предложенные последовательности вычисления степеней являются корректными.
25 баллов

  1. Ответ на вопрос
    Ответ на вопрос дан nelle987
    Программа на python 3, перебирающая все возможные последовательности определённой длины:
    def shortest_chains(n):
      def next_chains(chain):
        new_elems = set()
        for i in range(len(chain)):
          for j in range(i, len(chain)):
            new_elem = chain[i] + chain[j]
            if new_elem > chain[-1] and new_elem not in new_elems:
              new_elems.add(new_elem)
              yield chain + [new_elem]
      
      current_stage = None
      next_stage = [[1]]
      answer = []
      while len(answer) == 0:
        current_stage = next_stage
        next_stage = []
        for chain in current_stage:
          next_stage.extend(next_chains(chain))
        answer = [chain[1:] for chain in next_stage if chain[-1] == n]
      return answer
        
    def print_solution(n):
      answer = shortest_chains(n)
      print("Для {} есть {} решений(-я, -е):".format(n, len(answer)))
      for i in range(len(answer)):
        print("{}. {}".format(i + 1, " ".join(map(str, answer[i]))))
      print()

    Запустив, можно получить все 5 возможных решений для числа 7, по 4 решения для 15 и 23 и 87 решений для 63.
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 5 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.