|
|
|
|
|
для: Trianon
(13.12.2009 в 15:00)
| | Вот хитрец-то! | |
|
|
|
|
|
|
|
для: Eugene77
(13.12.2009 в 14:52)
| | По-моему, Ваше утверждение моему не противоречит. Более того, из Вашего утверждения мое логически следует. | |
|
|
|
|
|
|
|
для: Trianon
(13.12.2009 в 12:35)
| | Почему не превысит числа солдат в шеренге?
Вроде бы, (числа солдат - 1) не превысит. | |
|
|
|
|
|
|
|
для: 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
(12.12.2009 в 19:06)
| | А чем крайний правый глупый солдат отличается от крайнего левого глупого солдата? | |
|
|
|
|
|
|
|
для: Trianon
(08.12.2009 в 19:22)
| | Почему не превысит?
Если все повернутся направо кроме крайнего справа солдата, тогда его сосед увидит его лицо и повернётся налево. Для того, чтобы все остальные повернулись потребуется n-1 секунд, где n - число солдат в шеренге.
Хотя, может, я задачу не понял. | |
|
|
|
|
|
|
|
для: Rename
(08.12.2009 в 09:36)
| | число итераций, очевидно, не превысит половины от числа солдат в шеренге.
И смотреть они будут в разные стороны. левая часть налево - правая направо. | |
|
|
|
|
|
|
|
для: Trianon
(08.12.2009 в 13:51)
| | :)) | |
|
|
|
|
|
|
|
для: Rename
(08.12.2009 в 09:36)
| | Боюсь даже предположить, что будет, когда сержант скомандует "огонь!" :) | |
|
|
|
|
|
|
| Строй солдат стоит лицом к сержанту (сержант перед строем). Сержант командует "налево". За первую секунду все солдаты поворачиваются, но в любую из сторон (направо или налево). Далее, за вторую секунду солдаты, увидевшие лицо соседа, считают, что ошиблись и выполняют команду "кругом". Если солдат увидел затылок или никого не увидел (крайний в строю), то в эту секунду он ничего не делает. И так далее.
Когда закончится этот процесс? | |
|
|
|
|