Войти
Регистрация
Спроси ai-bota
В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
Показать больше
Показать меньше
Елена21st
07.06.2020 01:26 •
Информатика
Синформатикой у исполнителя калькулятор две команды, которым присвоены номера: 1. прибавь 1 2. умножь на 3 сколько есть программ, которые число 5 преобразуют в число 49? интересует само решение
Показать ответ
Ответ:
Sergobw
08.10.2020 17:25
Поиск пути по принципу дерева
Код на Руби
def f0(number, log) #
v = 1
n = number + v
# log = "#{log} + #{v}"
log = "#{log} + 1"
return [n, log]
end
def f1(number, log) #
v = 3
n = number * v
# log = "#{log} + #{v}"
log = "(#{log}) * 3"
return [n, log]
end
def countWays(start_num, end_num, op_number, max_steps = 0)
ways = {}
ways.store(start_num.to_s, start_num)
max_steps = max_steps == 0 ? (start_num - end_num).abs : max_steps
count = 0
for steps in 1..max_steps
# puts "steps = #{steps}"
new_ways = {}
ways.each_pair{|log, num|
for k in 0..op_number-1
num1, log1 = f0(num, log) if k == 0
num1, log1 = f1(num, log) if k == 1
if num1 == end_num then
log1 += " = " + end_num.to_s
count += 1
puts log1
elsif num1.between?(start_num, end_num)
new_ways.store(log1, num1)
else
# log1 = log1 + " = " + num1.to_s + " BAD "
# puts log1
end
end
}
# p [steps, ways.size, new_ways.size]
ways = new_ways
end
return count
end
p countWays(5, 49, 2, 49)
Вывод
((5) * 3 + 1) * 3 + 1 = 49
((5) * 3) * 3 + 1 + 1 + 1 + 1 = 49
(5 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1) * 3 + 1 = 49
(5 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1) * 3 + 1 + 1 + 1 + 1 = 49
(5 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 49
(5 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 49
(5 + 1 + 1 + 1 + 1 + 1 + 1 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 49
(5 + 1 + 1 + 1 + 1 + 1 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 49
(5 + 1 + 1 + 1 + 1 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 49
(5 + 1 + 1 + 1 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 49
(5 + 1 + 1 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 49
(5 + 1 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 49
(5 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 49
(5) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 49
5 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 49
15
ответ 15 вариантов программ
Как это решается аналитически я не знаю, но программно явно быстрее
0,0
(0 оценок)
Популярные вопросы: Информатика
francyzovaola2
21.03.2020 21:19
Абоненты некоторой сети применяют цифровую подпись по стандарту гост р34.10-94 с общими параметрами p = 47, q = 23, a = 7. найдите открытый ключ абонента петрова и вычислите...
Оливка134
03.07.2021 23:59
на с++,вводится н чисел,найти 1элемент массива и последний...
transformer56
26.02.2021 22:05
2. Составьте программу рисования прямоугольного треугольника катеты которого совпадают с осями координат. Медианапроведенная прямого угла, заканчивается в точкекоординатами...
azalhanovahalid
05.04.2022 14:38
Для перечисленных ниже названий стран составь таблицу истинности для высказыванияпервая буква гласная и вторая буква согласная или не последняя буква согласная1) кипр 2)...
Killeris
23.01.2022 14:51
Что такое плагиат а) незаконное использование чужого творческого труда b) законное использование с)чужого творческого труда d) авторские труд138 ...
mylifeartem
21.03.2021 08:43
Напишите наибольшее целое х, для которого истинно высказывание: не (х меньше=9)и не(х больше 17)...
umnyyk
04.01.2022 16:52
Надо умоляю аоаоаоао инфа 8 класс...
valuchska
23.03.2020 13:44
Вид внутренней памяти компьютера, в которой находится программа тестирования, настройки необходимых параметров используемого в данном компьютере оборудования и загрузкиоперационной...
tatuxa223
02.10.2020 17:09
Ребята, нужна Совсем не понимаю как нужно объяснить и написать, что получится при выводе на экран. Объясните Очень хочется разобраться. Повторно пишу с фотографией большего...
loikomatveico
26.10.2021 06:22
Попробуйте привести примеры декларативных и процедурных знаний, которыми вы обладаете....
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку
О НАС
О нас
Блог
Карьера
Условия пользования
Авторское право
Политика конфиденциальности
Политика использования файлов cookie
Предпочтения cookie-файлов
СООБЩЕСТВО
Сообщество
Для школ
Родителям
Кодекс чести
Правила сообщества
Insights
Стань помощником
ПОМОЩЬ
Зарегистрируйся
Центр помощи
Центр безопасности
Договор о конфиденциальности полученной информации
App
Начни делиться знаниями
Вход
Регистрация
Что ты хочешь узнать?
Спроси ai-бота
Код на Руби
def f0(number, log) #
v = 1
n = number + v
# log = "#{log} + #{v}"
log = "#{log} + 1"
return [n, log]
end
def f1(number, log) #
v = 3
n = number * v
# log = "#{log} + #{v}"
log = "(#{log}) * 3"
return [n, log]
end
def countWays(start_num, end_num, op_number, max_steps = 0)
ways = {}
ways.store(start_num.to_s, start_num)
max_steps = max_steps == 0 ? (start_num - end_num).abs : max_steps
count = 0
for steps in 1..max_steps
# puts "steps = #{steps}"
new_ways = {}
ways.each_pair{|log, num|
for k in 0..op_number-1
num1, log1 = f0(num, log) if k == 0
num1, log1 = f1(num, log) if k == 1
if num1 == end_num then
log1 += " = " + end_num.to_s
count += 1
puts log1
elsif num1.between?(start_num, end_num)
new_ways.store(log1, num1)
else
# log1 = log1 + " = " + num1.to_s + " BAD "
# puts log1
end
end
}
# p [steps, ways.size, new_ways.size]
ways = new_ways
end
return count
end
p countWays(5, 49, 2, 49)
Вывод
((5) * 3 + 1) * 3 + 1 = 49
((5) * 3) * 3 + 1 + 1 + 1 + 1 = 49
(5 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1) * 3 + 1 = 49
(5 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1) * 3 + 1 + 1 + 1 + 1 = 49
(5 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 49
(5 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 49
(5 + 1 + 1 + 1 + 1 + 1 + 1 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 49
(5 + 1 + 1 + 1 + 1 + 1 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 49
(5 + 1 + 1 + 1 + 1 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 49
(5 + 1 + 1 + 1 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 49
(5 + 1 + 1 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 49
(5 + 1 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 49
(5 + 1) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 49
(5) * 3 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 49
5 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 = 49
15
ответ 15 вариантов программ
Как это решается аналитически я не знаю, но программно явно быстрее