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

Напишите программу по выдаче рандомной комбинации букв, соответствующую следующим требованиям: - результат должен состоять из 8 символов (букв)- за буквой a могут стоять только буквы d, e, g, i, jза буквой b только e, f, h, j, kза буквой c только f, g, i, k, lза буквой d только a, g, h, j, lза буквой e только a, b, h, i, kза буквой f только b, c, i, j, lза буквой g только a, c, d, j, kза буквой h только b, d, e, k, lза буквой i только a, c, e, f, lза буквой j только a, b, d, f, gза буквой k только b, c, e, g, hза буквой l только c, d, f, h, i обозначения букв по желанию можно заменить на аналоги (a=а, b=б, c=в, d=г, e=д, f=е, g=ж, h=з, i=и, j=к, k=л, l=м) ​

👇
Открыть все ответы
Ответ:
MrDackes
MrDackes
21.05.2023
1. Вот так это пишется с функцией

// PascalABC.NET 3.1, сборка 1200 от 13.03.2016
function IsPrime(n:integer):boolean;
begin
  if n<4 then Result:=True
  else begin
    var found:= (n mod 2 = 0);
    var p:=3;
    while (not found) and (sqr(p)<=n) do
      begin
      found:=(n mod p = 0);
      p+=2
      end;
    Result:=not found
    end
end;

begin
  Writeln('k=',ArrRandom(ReadInteger('n='),1,999).Println.
    Where(x->IsPrime(x)).Count)
end.

Тестовое решение:
n= 10
401 828 780 444 694 965 23 341 673 875
k=3

2. А вот так это пишется с процедурой

// PascalABC.NET 3.1, сборка 1200 от 13.03.2016
procedure IsPrime(n:integer; var res:boolean);
begin
  if n<4 then res:=True
  else begin
    var found:= (n mod 2 = 0);
    var p:=3;
    while (not found) and (sqr(p)<=n) do
      begin
      found:=(n mod p = 0);
      p+=2
      end;
    res:=not found
    end
end;

begin
  var a:=ArrRandom(ReadInteger('n='),1,999); a.Println;
  var k:=0;
  var prime:boolean;
  foreach var e in a do begin
    IsPrime(e,prime);
    if Prime then Inc(k)
    end;
  Writeln('k=',k)
end.

Тестовое решение:
n= 12
199 43 71 365 417 904 170 212 694 103 161 689
k=4
4,8(69 оценок)
Ответ:
diana5974767
diana5974767
21.05.2023

Выигрывает 2 игрок. Для доказательства стоит рассмотреть дерево игры.

на доске записано 2.

первый игрок делает любой ход и на доске может появится одно из чисел 5, 7 или 4.

потом  ходит второй игрок. И на доске может появится одно из следующих чисел: 8, 9, 10, 12, 14. Естественно, если каждый игрок играет на выигрыш, то числа 12 и 14 он писать не будет. Тогда наступает ход первого игрока, при котором на доске может появится 11, 13, 16, 15, 20, 18. Таким образом видим, что при любом ходе первого игрока, второй все равно выиграет.

                                                                |     2     |

1 игрок                       | 5 |                            | 7  |                            |4|

2 игрок          | 8          10        10|       |10        12         14 |       | 8      8       9|

1 игрок     |11  13  16|      |  13   15    20|          выигрыш 1    |11    13   16|   |12   14    18|

 

надеюсь, что стало понятно :)

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