IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> задачка на лампочки, имеющих два состояния
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 4
Пол: Мужской
Реальное имя: Павел

Репутация: -  0  +


Имеется n>= ламп. расположенных в ряд, каждая из которых может быть в одном или двух состояний -"вкл" или "выкл". Каждую секунду лампы одновременно меняют своё состояние по правилам если лампа и ее соседи (для первой и последней лампы - один сосед, для остальных - два) находятся в одинаковом состоянии, то она принимает состояние "выкл", иначе она принимает состояние "вкл''. В начальном положении все лампы находятся в состоянии "выкл", кроме самой левой лампы, имеющей состояние ''вкл'' . Экспериментально найдите ( не менее 5), для каких n все все лампы будут в состоянии '' выкл''.

Сообщение отредактировано: metallic -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


М
Просьба привести название темы в соответствие с Правилами Форума (ссылка вверху страницы), п.4. В противном случае тема будет закрыта.



--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Ответ к твоей задаче такой: гаснут те наборы, в которых число ламп есть степень двойки - остальные продолжают мигать бесконечно.

Решение есть. Готов обсуждать его после исправления названия темы..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Спасибо за название.

Как я уже сказал, если тебе интересно решение - давай пообсуждаем.
У тебя по поводу него какие мысли/заделы есть?


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





Группа: Пользователи
Сообщений: 4
Пол: Мужской
Реальное имя: Павел

Репутация: -  0  +


Я решил ее , вот только не знаю правильно ли:
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.


Сообщение отредактировано: metallic -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(metallic @ 23.11.2008 15:24) *
Я решил ее , вот только не знаю правильно ли:

Что-то я совсем не врубаюсь.. Поясни, при чем тут остаток по модулю 3?


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7





Группа: Пользователи
Сообщений: 4
Пол: Мужской
Реальное имя: Павел

Репутация: -  0  +


Все догадался)), вроде так:
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.


Сообщение отредактировано: metallic -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Что-то я вообще ничего не понимаю.. blink.gif Ты же просто считаешь степени двойки:
Цитата(metallic @ 23.11.2008 16:52) *

n:=n+exp(i*ln(2));
- да и все! Но ПОЧЕМУ? Как ты это вывел? Ты что ли основываешься на моем посте? Так это я тебе уже результат сказал. А ты просто делаешь прогу, чтоб она выводила то, что надо - и неважно, что внутри? так, что ли?
Ведь нужно-то ПРОВОДИТЬ эксперименты. Так? Или я чего-то не понимаю?
Отвечай поскорее, я собираюсь спать. Если нужен код - дам.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Ладно, бери код и разбирайся в нем.
Успехов!
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.

Если найдутся ошибки - не обессудь..
На вопросы, я думаю, тебе тут ответят. А я - спать..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10





Группа: Пользователи
Сообщений: 4
Пол: Мужской
Реальное имя: Павел

Репутация: -  0  +


спасибо большое smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гость






Цитата
Если найдутся ошибки - не обессудь..
Найдутся, найдутся smile.gif Причем трудноуловимые для новичка: если эту программу откомпилировать 16-битным компилятором и запустить, то получим не совсем то, чего ожидаем:
Цитата
Trying n=2 .. All Off
Trying n=3 .. Some On
Trying n=4 .. All Off
Trying n=5 .. Some On
Trying n=6 .. Some On
Trying n=7 .. Some On
Trying n=8 .. All Off
Trying n=9 .. Some On
Trying n=10 .. Some On
Trying n=11 .. Some On
Trying n=12 .. Some On
Trying n=13 .. Some On
Trying n=14 .. Some On
Trying n=15 .. Some On
Trying n=16 .. Some On
Trying n=17 .. Some On
Trying n=18 .. Some On
Trying n=19 .. Some On
Trying n=20 .. Some On
Trying n=21 .. Some On
Trying n=22 .. Some On
Trying n=23 .. Some On
Trying n=24 .. Some On
Trying n=25 .. Some On
Trying n=26 .. Some On
, потому как Integer-а не хватает для произведения операции 1 shl 16, надо сделать N "длинным целым" (LongInt)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(volvo @ 24.11.2008 13:22) *
Integer-а не хватает для произведения операции 1 shl 16, надо сделать N "длинным целым" (LongInt)

.. что, я, ессно, и сделал... но отправил, видимо, старую версию..
Спасибо, volvo


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 1.11.2020 3:29
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name