#Ruby 2
def getNumberByPosition(start_num, end_num, k, n = 3)
# p [start_num, end_num, k, n]
if not start_num.between?(10**(n - 1),10**n - 1) or not end_num.between?(10**(n - 1),10**n - 1) then return end
s = ""
for i in start_num..end_num
s += i.to_s()
end
number = start_num + (k-1) / n
if number > end_num
puts "Выход за пределы"
return
end
# p number
upper_limit = n + 1 - ((k % n == 0) ? n : k % n)
number = number % (10**upper_limit)
# p [number, 10**upper_limit, upper_limit]
low_limit = upper_limit - 1
number = number / (10**low_limit)
# p [number, 10**low_limit, low_limit]
puts "#{number} = #{s[k-1]}"
end
getNumberByPosition(101,150,20,3)
getNumberByPosition(101,150,21,3)
сначала найдём общее количество возможных слов. поскольку на первое место можно поставить любую букву, кроме й, общее количество возможных слов равняется 5 · 5 · 4 · 3 · 2 · 1 = 600. теперь определим, сколько слов содержат сочетание ае. пусть слово начинается с ае, тогда количество вариантов равняется 1 · 1 · 4 · 3 · 2 · 1 = 24. пусть ае это вторая и третья буквы слова, тогда количество вариантов равняется 3 · 1 · 1 · 3 · 2 · 1 = 18. пусть ае это третья и четвёртая буквы слова, тогда количество вариантов равняется 3 · 3 · 1 · 1 · 2 · 1 = 18. в случае, когда ае это четвёртая и пятая буквы слова, количество вариантов равняется 3 · 3 · 2 · 1 · 1 · 1 = 18. в случае, когда ае это пятая и шестая буквы слова, количество вариантов равняется 3 · 3 · 2 · 1 · 1 · 1 = 18. таким образом, количество кодов, которые может составить матвей, равняется 600 − 24 − 18 − 18 − 18 − 18 = 504.
ответ: 504.
Поделитесь своими знаниями, ответьте на вопрос:
Вычислите сумму чисел x и у при х = 77(10), у = 77(8 результат представьте в двоичной системе счисления