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

Светодиод может находиться в трех состояниях. какое минимальное количество светодиодов понадобиться, чтобы собрать индикатор воспроизводить 100 различных сообщений? в ответе укажите целое число.

👇
Ответ:
ShadowFlcus
ShadowFlcus
10.02.2020
"Длинный" вариант
Если состояний три, то и система счисления - троичная.
100 сообщений потребуют 101 разное состояние, потому что еще должно быть нулевое состояние, когда сообщения отсутствуют и все светодиоды погашены.
Переводим 100 в троичную систему счисления.
100 / 3 = 33, остаток 1
33 / 3 = 11, остаток 0
11 / 3 = 3, остаток  2
3 / 3 = 1, остаток 0.
Теперь выписываем остаток и приписываем к нему остатки в обратном порядке: 10201
Итак, 100₁₀ = 10201₃, т.е для кодирования ста сообщения понадобится  пять светодиодов (по числу разрядов в числе).

Короткий вариант
Если состояний три, то и система счисления - троичная.
100 сообщений потребуют 101 разное состояние, потому что еще должно быть нулевое состояние, когда сообщения отсутствуют и все светодиоды погашены.
Нам нет необходимости узнавать точное троичное значение числа 100, поскольку необходимо знать лишь количество разрядов в его записи. А это позволит сделать нахождение логарифма 100 по основанию 3.
\displaystyle n=\log_3100= \frac{\ln100}{\ln3}\approx 4.19
Окончательно принимаем n=5, т.е.для кодирования ста сообщения понадобится  пять светодиодов
4,5(59 оценок)
Открыть все ответы
Ответ:
Const
n=10;m=7;
var
a:array[1..n,1..m]of integer;
flag,i,j,b:integer;
begin
     for i:=1 to n do
         begin
             writeln;
                 for j:=1 to m do
                      begin
                        a[i,j]:=random(312)-111;
                        write(a[i,j]:4);
                      end;
            end;
writeln;
Writeln('B ?');
readln(b);
for i:=1 to n do
  for j:=1 to m do
      if a[i,j]=b then
          flag:=1;
if flag=1 then
   writeln('Yes')
else
   writeln('N');
end.

вариант 2
const
n=10;m=7;
var
a:array[1..n,1..m]of integer;
k,i,j,b:integer;
begin
     for i:=1 to n do
         begin
             writeln;
                 for j:=1 to m do
                      begin
                        a[i,j]:=random(312)-111;
                        write(a[i,j]:4);
                      end;
            end;
writeln;
Writeln('B ?');
readln(b);
for i:=1 to n do
  for j:=1 to m do
      if a[i,j]=b then
          k:=k+1;
if k<>0 then
   writeln('Yes')
else
   writeln('N');
end.
4,6(98 оценок)
Ответ:
макс17281
макс17281
10.02.2020
Программа Вот:
Program z1;Var a,b,c,d,k:integer;BeginWriteln('Введите трехзначное число');REadln(a);While a<>0 do beginWriteln('Введите трехзначное число');REadln(a);b:=a div 100 mod 10;c:=a div 10 mod 10;d:=a mod 10;if b+c+d div 10 >0 then writeln('Сумма цифр- двузначное число') else writeln ('Нет, сумма цифр не двузначное число');if b*C*D div 100 >0 then writeln('Произведение цифр- терхзначное число') else writeln ('Нет, произведение цифр не трехзначное число число');Writeln ('Введите любое число');Readln (k);If b*c*d>k then writeln('Произведение цифр больше числа') else writeln('Произведение меньше числа');if B+c+d div 5 =0 then writeln('Сумма цифр числа кратна 5') else writeln ('Сумма цифр не кратна 5');if B+c+d div k =0 then writeln('Сумма цифр числа кратна числу, введенному с клавиатуры') else writeln ('Сумма цифр не кратна числу, введенному с клавиатуры');End;End. 
Есть маленькая проблема в начале, не помню как прописывать, поэтому число первый раз нужно вводить 2 раза, если не устраевает, можете воспользоваться другими ресурсами  
4,6(83 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ