• Напишите программу по выдаче рандомных чисел, содержащих от 1 до 5 знаков, состоящих из чисел от 1 до 12, так чтобы:
    За цифрой 1 могли следовать только цифры 4, 5, 7, 9, 10
    За цифрой 2 - только 5, 6, 8, 10, 11
    За цифрой 3 - только 6, 7, 9, 11, 12
    За цифрой 4 - только 1, 7, 8, 10, 12
    За цифрой 5 - только 1, 2, 8, 9, 11
    За цифрой 6 - только 2, 3, 9, 10, 12
    За цифрой 7 - только 1, 3, 4, 10, 11
    За цифрой 8 - только 2, 4, 5, 11, 12
    За цифрой 9 - только 1, 3, 5, 6, 12
    За 10 - только 1, 2, 4, 6, 7
    За 11 - только 2, 3, 5, 7, 8
    За 12 - только 3, 4, 6, 8, 9

    Примерные результаты программы:
    1473, 21106, 112, 82

Ответы 6

  • > "по длине цепочки следующих друг за другом чисел" - имелось в виду количество применений правил, по которым одни числа следуют за другими. Равномерность по нему обеспечивается строкой for i := 1 to 1 + random(3) do
    • Автор:

      tatum
    • 4 года назад
    • 0
  • Вот, опять демагогия. Оказывается длина цепочки - это теперь "количество применений правил".
    • Автор:

      sarge
    • 4 года назад
    • 0
  • Все... реально надоело Вам пытаться что-то разъяснить. Вы все прекрасно понимаете и сами.
  • Я во втором сообщении написал "равномерное по количеству следований", а в пятом - "не по количеству цифр, а по длине цепочки следующих друг за другом чисел". Так что я изначально имел в виду именно количество применений правил. Специально уточнил, что это не то же самое, что количество цифр в результате.
  • Про любое распределение можно сказать, что оно неправильное. Если бы было равномерное распределение по количеству цифр (как вы, видимо предлагаете?), то, например, число 1 получалось бы чаще, чем 14.
    • Автор:

      feliciano
    • 4 года назад
    • 0
  • {Вам следовало бы более точно описать, что вам нужно.Непонятно, что это за условие со следованием. В примере 21106 за цифрой 2 следует 11, но за 11 не следует ничего из перечисленного. Ну или в нем 10 следует за 1, но тогда зачем условия следования для 10..12?+ ничего не сказано про случайное распределение этих чисел. Так-то программа, которая все время выводит "1", тоже подходит под эти условия}const  R: array[1..12,1..5] of integer = (  (4,5,7,9,10),   //1  (5,6,8,10,11),  //2  (6,7,9,11,12),  //3  (1,7,8,10,12),  //4  (1,2,8,9,11),   //5  (2,3,9,10,12),  //6  (1,3,4,10,11),  //7  (2,4,5,11,12),  //8  (1,3,5,6,12),   //9  (1,2,4,6,7),    //10  (2,3,5,7,8),    //11  (3,4,6,8,9)     //12  );var i,k:integer;  begin  k := 1 + random(12);  for i := 1 to 1 + random(3) do    begin    write(k);    k := R[k,1 + random(5)];    end;end.
    • Автор:

      maximo
    • 4 года назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years