Алгоритм вычисления значения функции f(n), где n - натуральное число, задан следующими соотношениями: f(1) = 1 f(n) = f(n-1)*(3*n - 2), при n > 1чему равно значение функции f(4)?
В данном случае надо просто посчитать F(2)=F(1)*(3*2-2)=4 F(3)=F(2)*7=28 F(4)=F(3)*(3*4-2)=28*10=280
BorgovichOA
12.06.2020
Рассматривая различные прямоугольники и подсчитывая в них число поворотов P, можно прийти к следующему алгоритму. Для любого натурального k получаем:
var M, N, k, mn, P: integer; f: Text;
begin Assign(f, 'input.txt'); Reset(f); Readln(f, M, N); Close(f); if M < N then mn := M else mn := N; if mn = 1 then P := 0 else begin k := mn div 2; if mn mod 2 = 0 then if M = N then P := 4 * k - 2 else P := 4 * k - 1 else if M = N then P := 4 * k else P := 4 * k + 1 end; Assign(f, 'output.txt'); Rewrite(f); Writeln(f, P); Close(f) end.
hachatryanlilit1983
12.06.2020
1. Переводим отдельно целую часть, отдельно - дробную. Целую часть переводим путем последовательного целочисленного деления с остатком на основание системы, в которую осуществляется перевод. Нам надо сделать перевод в системы счисления по основаниям 2, 8, 9 и 16, поэтому сначала выбираем 16 - это даст меньше всего операций деления. 125/16=7, остаток 13. 7 меньше 16, деление прекращаем. Записываем частное, а за ним остатки в обратном порядке (это общее правило, а в нашем случае остаток единственный). Получаем 7 13. Заменяем полученные десятичные числа шестнадцатиричными и получаем 7D. Теперь переводим дробную часть. Тут надо производить последовательное умножение на основание системы и отбрасывать целые части, записывая их в качестве получаемых цифр числа. Повторяем до получения нулевой дробной части или прекращаем, если получено необходимое число цифр. 0.68х16=10.88, записываем 10, в 16й системе счисления это А 0.88х16=14.08, 14 ⇒ E 0.08x16=1.28, 1 ⇒ 1 0.28x16=4.48, 4 ⇒ 4 0.48x16=7.68, 7 ⇒ 7 0.68x16=10.88, 10 ⇒ E и все пошло по кругу. Следовательно, дробная часть не может быть точно представлена в шестнадцатиричной системе счисления. Ограничимся двумя цифрами после запятой. Результат перевода запишется так: 125.68(10)=7D.AE(16)
Переход к двоичной системе очень прост, поскольку шестнадцать - это два в четвертой степени. Поэтому каждую шестнадцатиричную цифру заменяем четырьмя двоичными цифрами (так называемой тетрАдой). Получаем 7D.AE(16)=0111 1101.1010 1110(2)
Перевод из двоичной системы в восьмеричную тоже прост, поскольку восемь - это два в кубе. Разбиваем двоичное число на триАды (по три разряда) влево и вправо от десятичной точки и каждую триаду заменяем восьмеричной цифрой (они по написанию совпадают с десятичными). Если разрядов для триады не хватает, дополняем их нулями слева для целой части и справа для дробной. 001 111 101.101 011 100(2)=175.534(8)
Перейти от двоичной к девятиричной системе счисления мы подобный образом сделать не можем, поскольку девять не является степенью двойки. Придется поступать как при переходе к шестнадцатиричной системе: делить десятичное число на основание системы (9). Снова отдельно переводим целую часть, отдельно - дробную. 125/9=13, остаток 8. 13/9=1, остаток 4 1 меньше 9, деление прекращаем. Записываем частное, а за ним остатки в обратном порядке: 148. Теперь переводим дробную часть. Тут надо производить последовательное умножение на основание системы и отбрасывать целые части, записывая их в качестве получаемых цифр числа. Повторяем до получения нулевой дробной части или прекращаем, если получено необходимое число цифр. 0.68х9=6.12, записываем 6 0.12х9=1.08, записываем 1 0.08x9=0.72, записываем 0 0.72x9=6.48, записываем 6 0.48x9=4.32, записываем 4 0.32x9=2.88, записываем 2 и так далее... В нашем случае дробная часть не может быть точно представлена в девятиричной системе счисления, ограничимся четырьмя цифрами после запятой. Результат перевода запишется так: 125.68(10)=148.6106(9)
2. Перевод из двоичного представления в восьмеричное мы уже делали, поэтому объяснения тут не нужны. Разбиваем число на триады и получаем результат. 111 011.001 101(2) = 73.15(8) В шестнадцатиричную систему перевод делается так же, только двоичное число надо разбивать не на триады, а на тетрады. С дополнением нулями, как и для восьмеричной системы. 0011 1011.0011 0100(2) = 3В.34(16) Осталось сделать перевод в десятичную систему счисления. Конечно, его можно выполнять для любого основания, но лучше брать такое, где меньше всего ненулевых цифр. В двоичном представлении 8 единиц, в восьмеричном и шестнадцатиричном - по 4. Следовательно можно брать или восьмеричное число, или шестнадцатиричное. Допустим, выбрано шестнадцатиричное число. Записываем его в расширенной форме по степеням основания (т.е. 16 в нашем случае):
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Алгоритм вычисления значения функции f(n), где n - натуральное число, задан следующими соотношениями: f(1) = 1 f(n) = f(n-1)*(3*n - 2), при n > 1чему равно значение функции f(4)?