Имеется n>= ламп. расположенных в ряд, каждая из которых может быть в одном или двух состояний -"вкл" или "выкл". Каждую секунду лампы одновременно меняют своё состояние по правилам если лампа и ее соседи (для первой и последней лампы - один сосед, для остальных - два) находятся в одинаковом состоянии, то она принимает состояние "выкл", иначе она принимает состояние "вкл''. В начальном положении все лампы находятся в состоянии "выкл", кроме самой левой лампы, имеющей состояние ''вкл'' . Экспериментально найдите ( не менее 5), для каких n все все лампы будут в состоянии '' выкл''.
М | Просьба привести название темы в соответствие с Правилами Форума (ссылка вверху страницы), п.4. В противном случае тема будет закрыта. |
Ответ к твоей задаче такой: гаснут те наборы, в которых число ламп есть степень двойки - остальные продолжают мигать бесконечно.
Решение есть. Готов обсуждать его после исправления названия темы..
Спасибо за название.
Как я уже сказал, если тебе интересно решение - давай пообсуждаем.
У тебя по поводу него какие мысли/заделы есть?
Я решил ее , вот только не знаю правильно ли:
Program A1;
var i,k,n:integer;
BEGIN
writeln ('vvedite koli4estvo eksperimentov');
readln(k);
k:=k+1;
n:=0;
for i:=2 to k do
begin
if i mod 3=0 then
begin
n:=1;
writeln ('pri n=',n,' vse lampo4ki pogasnyt');
end;
end;
writeln ('pri n=2 vse lampo4ki pogasnyt');
readln;
END.
Все догадался)), вроде так:
Program Lamp;
var i,k:integer;
n:real;
BEGIN
writeln ('vvedite kol-vo opitov');
readln (k);
n:=2;
writeln ('vse lampi pogasnyt pri n=2');
for i:= 1 to k do
begin
n:=n+exp(i*ln(2));
writeln ('vse lampi pogasnyt pri n=',n);
end;
readln
END.
Что-то я вообще ничего не понимаю.. Ты же просто считаешь степени двойки:
Ладно, бери код и разбирайся в нем.
Успехов!
const
m=26; // максимальное число ламп
var
n: integer;
L,L1: array [1..m] of boolean;
function On: boolean;
var
i: integer;
b: boolean;
begin
b:=false;
for i:=1 to n do begin
b:=b or L[i];
if b then Break
end;
On:=b
end;
procedure Show;
var
i: integer;
begin
for i:=1 to n do if L[i] then Write('0') else Write('-');
ReadLn
end;
var
i: integer;
j: LongInt;
begin
for n:=2 to m do begin
Write('Trying n=',n,' .. ');
L[1]:=true;
for i:=2 to n do L[i]:=false;
j:=0;
while On and(j<1 shl n) do begin
for i:=1 to n do
L1[i]:=(i>1)and(L[i] xor L[i-1])or(i<n)and(L[i] xor L[i+1]);
L:=L1;
Inc(j);
// Show;
end;
if On then WriteLn('Some On') else WriteLn('All Off');
end
end.
спасибо большое
Diamox Buy No Prescription
Ibuprofen Amoxicillin