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

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

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

 
 Ответить  Открыть новую тему 
> Задача Джозефуса
сообщение
Сообщение #1


Гость






Помогите решить задачку, пожалуйста.

Отряд солдат окружен превосходящими силами противника. Надежда на победу без подкрепления исключается, однако для прорыва из лагеря имеется одна лошадь. Солдаты решабт выбрать одного человека и послать его за помощью. Они становятся в круг и из шляпы выбирается число N и одно из их имен. Производится счет счет по часовой стрелке по кругу, начиная с солдата с выбранным именем. Когда счетчик достигает N, соответвующий солдат удаляется из круга, а счет продолжается снова, начиная со следующего солдата. Последний оставшийся в круге солдат посылается за подмогой. Определите порядок удаления солдат из круга и имя оставшкгося солдата.

Заранее благодарен.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Ищи по форуму. Была нужная тебе программа, только с другим описанием... Она была под названием "Казнь"...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Perl. Just code it!
******

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

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


попробовал ради интереса решить ... заняться вообще нечем, моя верси про пиво smile.gif)) Если что не так, поправьте :

uses crt;
var
soldiers:array[1..10] of string =
('Вова.П','Б.Страуструп','Д.Буш','С.Шнуров','Некто','klem4','Билл гтс','Касперский',
'Н.Вирт','К.Митник');
i,n,Ncount,count:integer;

Begin

clrscr;

randomize;

count:=10;

NCount:=0;

repeat

n:=random(count)+1;

if NCount>=count then NCount:=0;

i:=NCount+1; NCount:=1;

repeat
if i=count then i:=0;
inc(i);
inc(NCount);
until Ncount=n;

NCount:=i;

writeln('Выбыл : ',soldiers[Ncount]);

for i:=NCount to count-1 do
soldiers[i]:=soldiers[i+1];

dec(count);

until count=1;

writeln;

writeln('За пивом сегодня идет : ',soldiers[1]);


readln;
End.



нашел лишнюю проверку if i=count then ... ненужна


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






klem4,
а зачем это ты каждый раз пересчитываешь
repeat
n:=random(count)+1; { <--- вот это ? }

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


Perl. Just code it!
******

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

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


ааа... нужно однаковое N видимо, я просто недопонял.

Сообщение отредактировано: klem4 -


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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