М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Вика6789754
Вика6789754
29.04.2023 06:57 •  Информатика

Иван и Сергей обмениваются шифрованными сообщениями. Для этого они используют слова, содержащие только четыре буквы: A, B, C, D. Для передачи сообщений мальчики придумали цифровой передатчик, использующий неравномерный двоичный код, удовлетворяющий условию Фано. Для букв B, C, D используются такие кодовые слова: B — 101, C — 110, D — 0.
Укажи кратчайшее кодовое слово для буквы А, при котором код мальчиков будет допускать однозначное декодирование. Если таких кодов несколько, укажи код с наибольшим числовым значением. В ответе введи число.

👇
Открыть все ответы
Ответ:
dildora140995p01blz
dildora140995p01blz
29.04.2023

ответ (перепроверьте на всякий случай скобки, вроде должно быть всё верно, но там довольно замороченно, лучше ещё раз перепроверить):

from math import atan,log

a = [0.5, -1, -2]

b = [1.5, 0.5, 0]

p = [-4, -4, -4]

while True:

 try:

   x = float(input('Введите x: '))

   break

 except ValueError:

   print('Вводите число!')

if abs(x) < 0.2:

 for i in range(3):

   print(f'Вариант {i+1}: {a[i]**2 * x**3 + (b[i]**4 + 1.7)**0.5}')

elif abs(x) == 0.2:

 for i in range(3):

   print(f'Вариант {i+1}: {atan(2**x - abs(p[i]))}')

else:

 for i in range(3):

   print(f'Вариант {i+1}: {(log(abs(a[i])) + 4.3)**(1/3) + x}')

"Попроще" - без циклов, проверки ввода и массивов:

from math import atan,log

a1 = 0.5

a2 = -1

a3 = -2

b1 = 1.5

b2 = 0.5

b3 = 0

p1 = -4

p2 = -4

p3 = -4

x = float(input('Введите x: '))

if abs(x) < 0.2:

 y = a1**2 * x**3 + (b1**4 + 1.7)**0.5

 print('Вариант 1: ', y)

 y = a2**2 * x**3 + (b2**4 + 1.7)**0.5

 print('Вариант 2: ', y)

 y = a3**2 * x**3 + (b3**4 + 1.7)**0.5

 print('Вариант 3: ', y)

elif abs(x) == 0.2:

 y = atan(2**x - abs(p1))

 print('Вариант 1: ', y)

 y = atan(2**x - abs(p2))

 print('Вариант 2: ', y)

 y = atan(2**x - abs(p3))

 print('Вариант 3: ', y)

else:

 y = (log(abs(a1)) + 4.3)**(1/3) + x

 print('Вариант 1: ', y)

 y = (log(abs(a2)) + 4.3)**(1/3) + x

 print('Вариант 2: ', y)

 y = (log(abs(a3)) + 4.3)**(1/3) + x

 print('Вариант 3: ', y)

4,6(51 оценок)
Ответ:
SETMASTERS
SETMASTERS
29.04.2023

#include <iostream>

#include <vector>

using namespace std;

void hanoi(int n, int f, int t) {

   if (n == 0) {

       return;

   }

   int v = 6 - f - t;

   if (f == t - 1 || (f == 3 && t == 1)){

       hanoi(n - 1, f, v);

       cout << n << " " << f << " " << t << endl;

       hanoi(n - 1, v, t);

   }else{

       hanoi(n - 1, f, t);

       cout << n << " " << f << " " << v << endl;

       hanoi(n - 1, t, f);

       cout << n << " " << v << " " << t << endl;

       hanoi(n - 1, f, t);

   }

}

int main (){

   int n;

   cin >> n;

   hanoi(n, 0, 0); //тут какая - то проблема при выводе, я не понял как выводить их. Если вдруг решите проблему, то напишите в комменты под задачей!!  

}

Объяснение:

Мне тоже надо , кто сделал "Быстрое возведение в степень" и

"Количество разбиений на слагаемые" отправьте мне решения

4,4(69 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ