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

Сюжет задачи про шарики. Из урны с 10 пронумерованными шариками вынимают по одному шарику. Подсчитать общее количество ситуаций, когда номер хотя бы одного вынутого шарика совпадает с порядковым номером действия "вынимания", например, когда шарик № 3 будет вынут 3-им по порядку. Алгоритм генератора перестановок

1. Задать количество шариков n.

2. Создать массив пронумерованных шариков от 1 до n.

3. Целочисленная переменная i - номер шарика (от 1 до n), одновременно являющаяся счетчиком действий.

4. Создать функцию perestanovka от целочисленных m и n, которая генерирует перестановки, в зависимости от количества шариков (n) и в которой фигурирует номер очередного переставляемого шарика (m). В этой функции использовать условие: когда номер шага i равен номеру вынимаемого шарика m, печатать очередную перестановку. Во всех остальных случаях менять местами элементы с номерами i и m, после чего вызывать функцию perestanovka со следующим значением шага и опять же менять местами элементы с номерами i и m.

5. Основная программа: присваивание шарикам порядковых номеров, вызов функции perestanovka с параметрами 1 (первый шаг) и n (количество шариков).

Написать программу на c++

👇
Открыть все ответы
Ответ:
egornikitin10
egornikitin10
21.03.2023
Program Number;
var  x: integer; { введенное число }  n: byte := 0; { количество цифр в числе }  i, j: byte; { счетчики }  xi: array[1..5] of integer;{массив цифр, из которых состоит число}
begin  { Ввод исходного числа }  readln(x);  writeln;   x := abs(x); // рассматриваем модуль числа  { Разбиение числа на цифры }  while (x > 0) do  begin    n := n + 1; // увеличиваем количество цифр    xi[n] := x mod 10; // вычисляем цифру (остаток от деления на 10)    if xi[n] = 8 then // если встретилась 8,    begin      writeln('да'); // то число "бесконечное"      readln;      exit;          // выход из программы    end;    x := x div 10; // изменяем число (целое от деления на 10)  end;  { Поиск цифр, встречающихся больше одного раза}  for i := 1 to n - 1 do    for j := i + 1 to n do      if xi[i] = xi[j] then // если числа      begin        writeln('да'); // то число "бесконечное"        readln;        exit;  // выход из программы       end;  { Число не явлется "бесконечным" }  writeln('нет');end.
4,4(31 оценок)
Ответ:
16120000
16120000
21.03.2023
Если считать что у племени мульти в алфавите не 17, а 16 символов, то задача решается так:
На 1 символ у племени мульти требуется log₂16 = 4 бита
На сообщение из 100 символов - 100*4 = 400 бит
Для племени пульти получится соответственно log₂32=5 бит,
на все сообщение 50*5=250 бит
Сравниваем: 400 бит > 250 бит
Если в задаче 17, а не 16, то значение логарифма получится не целым (4.08746284125), можно это значение дальше и подставлять. Если считать, что каждый символ кодируется целым числом бит, то на 1 символ у племени мульти потребуется также 5 бит (округление выполняют всегда в большую сторону). Остальные расчеты делаются аналогично
4,8(61 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ