for steps in 1..max_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 num1, log1 = f2(num, log) if k == 2
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) end end } ways = new_ways end return count end
p countWays(0, 11, 3) # с 0 до 11, 3 разных команды
Вывод 504
Поскольку длина путей до ценного объекта и от объекта до базы - равны, то всего вариантов 504*504 = 254016
olgakozelskaa492
20.08.2021
Все удачные наборы команд должны включать остановку на отметке 12 футов. На отметку 1 фут робот может попасть с одной команды A; на отметку 2 фута - с команд AA и B (всего 2 набора команд); на отметку 3 фута - с команд AAA, AB, BA и C (4 набора). Так как за одну команду робот может переместиться на 1, 2 или 3 фута, то для подсчета количества наборов команд, позволяющих роботу попасть на отметки N > 3, можно использовать формулу K(N) = K(N-1)+K(N-2)+K(N-3). Напимер, на отметку 4 фута робот может попасть с отметок 3, 2 или 1 фут, следовательно, количество попасть на отметку 4 определяется как K(3)+K(2)+K(1). K(4) = K(3)+K(2)+K(1) = 4+2+1 = 7 K(5) = K(4)+K(3)+K(2) = 7+4+2 = 13 K(6) = K(5)+K(4)+K(3) = 13+7+4 = 24 K(7) = K(6)+K(5)+K(4) = 24+13+7 = 44 K(8) = K(7)+K(6)+K(5) = 44+24+13 = 81 K(9) = K(8)+K(7)+K(6) = 81+44+24 = 149 K(10) = K(9)+K(8)+K(7) = 149+81+44 = 274 K(11) = K(10)+K(9)+K(8) = 274+149+81 = 504 K(12) = K(11)+K(10)+K(9) = 504+274+149 = 927 Так как вторая часть пути робота также имеет длину 12, то общее количество удачных наборов команд = 927*927 = 859 329
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Сообщение записанное буквами из 32 символьного алфавита содержит 80 символов какой объём информации он даёт?
400 бит или 50 байт
Объяснение: