Форум: Медико-психологические вопросыСам себе юристО Жизни и про Жизнь
Новые темы: 000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Головоломки на PHP для хакера (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

О Жизни и про Жизнь

Выбрать другой skin

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Логическая задача про глупых солдат
 
 автор: Rename   (08.12.2009 в 09:36)   письмо автору
 
 

Строй солдат стоит лицом к сержанту (сержант перед строем). Сержант командует "налево". За первую секунду все солдаты поворачиваются, но в любую из сторон (направо или налево). Далее, за вторую секунду солдаты, увидевшие лицо соседа, считают, что ошиблись и выполняют команду "кругом". Если солдат увидел затылок или никого не увидел (крайний в строю), то в эту секунду он ничего не делает. И так далее.
Когда закончится этот процесс?

  Ответить  
 
 автор: Trianon   (08.12.2009 в 13:51)   письмо автору
 
   для: Rename   (08.12.2009 в 09:36)
 

Боюсь даже предположить, что будет, когда сержант скомандует "огонь!" :)

  Ответить  
 
 автор: sim5   (08.12.2009 в 19:17)   письмо автору
 
   для: Trianon   (08.12.2009 в 13:51)
 

:))

  Ответить  
 
 автор: Trianon   (08.12.2009 в 19:22)   письмо автору
 
   для: Rename   (08.12.2009 в 09:36)
 

число итераций, очевидно, не превысит половины от числа солдат в шеренге.
И смотреть они будут в разные стороны. левая часть налево - правая направо.

  Ответить  
 
 автор: Eugene77   (12.12.2009 в 19:06)   письмо автору
 
   для: Trianon   (08.12.2009 в 19:22)
 

Почему не превысит?
Если все повернутся направо кроме крайнего справа солдата, тогда его сосед увидит его лицо и повернётся налево. Для того, чтобы все остальные повернулись потребуется n-1 секунд, где n - число солдат в шеренге.
Хотя, может, я задачу не понял.

  Ответить  
 
 автор: Trianon   (12.12.2009 в 21:02)   письмо автору
 
   для: Eugene77   (12.12.2009 в 19:06)
 

А чем крайний правый глупый солдат отличается от крайнего левого глупого солдата?

  Ответить  
 
 автор: Trianon   (13.12.2009 в 12:35)   письмо автору
 
   для: Trianon   (12.12.2009 в 21:02)
 

С оценкой времени я лопухнулся.
Время (в секундах) не превысит длины ширенги.
<html>
<body>
    <form name=f>
    <input size=2 name=N value=20 />
    <input size=2 name=step>
    <input size=50 name=out><br>
    <textarea name=res rows=30 cols=80></textarea>
    </form>
<script>

   var w = window;
   var d = w.document;
   var el = d.forms.f.elements;
   var N = parseInt(el.N.value);
   var row = [];
   function genrow()
   {
     for(var i = 0; N > i ; i++) row[i] = Math.random() >= 0.5;
     row[i] = 1;
     el.step.value = -1;
     el.res.value = '';
   }
   function printrow()
   {
     var old = el.out.value;
     for(var s='', i = 0; N > i ; i++)
       s += row[i] ? "[) " : "(] ";
     el.out.value=s;
     if(old != el.out.value)
       el.step.value++;
     el.res.value += s + "\r\n";
     return s;
   }
   function steprow()
   {
     var old = el.step.value;
     for(var x = 0, y = 0, i = 0; N > i ; i++)
     {
       y = row[i];
       row[i] ^= (y ? (row[i+1] == 0)  : (x == 1));
       x = y;
     }
     printrow();
     if(old != el.step.value)
       setTimeout(steprow, 1000);
   }
   genrow(); printrow();
  setTimeout(steprow, 1000);

</script>
</body>
</html>

  Ответить  
 
 автор: Eugene77   (13.12.2009 в 14:52)   письмо автору
 
   для: Trianon   (13.12.2009 в 12:35)
 

Почему не превысит числа солдат в шеренге?
Вроде бы, (числа солдат - 1) не превысит.

  Ответить  
 
 автор: Trianon   (13.12.2009 в 15:00)   письмо автору
 
   для: Eugene77   (13.12.2009 в 14:52)
 

По-моему, Ваше утверждение моему не противоречит. Более того, из Вашего утверждения мое логически следует.

  Ответить  
 
 автор: Eugene77   (19.12.2009 в 18:52)   письмо автору
 
   для: Trianon   (13.12.2009 в 15:00)
 

Вот хитрец-то!

  Ответить  
вверх
Консультации от известных специалистов и авторов многих книг