Есть ответ 👍

Исполнитель увеличитель345 преобразует число, записанное на экране. у исполнителя три команды, которым присвоены номера: 1. прибавь 3 2. прибавь 4 3. прибавь 5 первая из них увеличивает число на экране на 3, вторая увеличивает это число на 4, а третья – на 5. программа для исполнителя увеличитель345 – это последовательность команд. определите, сколько существует программ, преобразующих число 22 в число 80. можно решать как с электронной таблицы, так и путем составления программы.

204
224
Посмотреть ответы 3

Ответы на вопрос:


//ruby 22 def factorial(n)       f = 1;       for i in 1..n; f *= i; end;       f end n=0 for i in 0..80/3       for j in 0..80/4             for k in 0..80/5                   if 22+3*i+4*j+5*k==80                         nn = factorial(i+j+k)/factorial(i)/factorial(j)/factorial(k)                         n+=nn                         p [i,j,k]                   end             end       end end p n как работает программа: сначала мы находим способы получить из 22 число 80. для удобства шаги мы упорядочеваем: сначала прибавляем тройки, потом четверки, потом пятерки. ищем все возможные наборы (i, j, k) которые отвечают равенству 22 + 3i + 4j + 5k = 80. для каждого такого набора высчитываем кол-во перестановок с повторениями и суммируем их.  ответ 3174448
yestarday23
4,5(59 оценок)

Можно решать по-другому, используя динамическое программирование. обозначим f[n] - число способов получить число n и положим f[18]=f[19]=f[20]=f[21]=0, а f[22]=1. тогда f[k] = f[k-3]+f[k-4]+f[k-5] для любого k > = 23. (почему так? возьмём некоторое число k. его можно получить из чисел k-3, k-4, k-5 путём прибавления тройки, четвёрки и пятёрки соответственно, притом если мы договорились, например, что последней операцией будем прибавление пятёрки, то число способов получить число k будет равно числу способов получить k-5, ведь последнюю операцию мы определим однозначно. поэтому число способов получить k - сумма количеств способов получить k-3, k-4 и k-5) итак,  f[k] = f[k-3]+f[k-4]+f[k-5],  f[18]=f[19]=f[20]=f[21]=0 и  f[22]=1. по этой рекуррентной формуле можно даже посчитать вручную (это будет немного долго), или воспользоваться компьютером. например, на python 3 можно написать такую программу: a = [0] * 5; n = 22; a[n % 5] = 1; while n < 80:     n += 1;     a[n % 5] = a[(n-3) % 5] + a[(n-4) % 5] + a[(n-5) % 5]print(a[n % 5])ответ:   3174448

Украинский не знаю, но решил правильно

если нужно вывести элементы, напиши мне

Объяснение:

#include<bits/stdc++.h>

using namespace std;

long long n;

set <long long> s;

int main(){

cin >> n;

long long a;

for (int i = 0; i < n; i++){

cin >> a;

s.insert(a);

}

cout << s.size();

return 0;

}

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

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

Подпишись на наш телеграмм канал

GTP TOP NEWS