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

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

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

> Обратная "считалочка", Обратная "считалочка"
Татка
сообщение 5.06.2005 22:39
Сообщение #1





Группа: Пользователи
Сообщений: 8
Пол: Женский

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


Приветик! :yessss:

Пожалуйста, помогите, задачку надо до утра решить!
Задачка эта, можно сказать, обратная задачке "считалочка". Тема - динамические структуры данных.
Задача: В задаче о "считалочке" Петя находится на месте i. Сущевствует ли значение k (k-ый удаляемый ребенок) такое, что Петя останется последним ребенком в круге. Написать программу поиска значений k.

Умоляю :molitva: , помогите пожалуйста.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 6)
volvo
сообщение 5.06.2005 22:55
Сообщение #2


Гость






Я не знаю, как быть с динамическими структурами данных... Их тут просто негде использовать... Если без них - то можно взять вот эту программу: Казнь, задать в ней константу K = N, и изменить основную часть вот так:


Const Peter = ...{ На каком месте находится Петя }
...
Var
all: TBigReg;
i, count: integer;
begin
For i := 1 To n Do
set_bit(all, i);

count := 0;
For i := 1 To n Do
If down_next(all, k, i)) = Peter Then Begin
WriteLn('При значении K = ', i); inc(count);
End;
if count = 0 Then writeln('Таких значений нет...');
end.
 К началу страницы 
+ Ответить 
Татка
сообщение 5.06.2005 23:28
Сообщение #3





Группа: Пользователи
Сообщений: 8
Пол: Женский

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


Ну а можно сюда приплести как-нибудь динамические переменные и указатели? unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 6.06.2005 0:16
Сообщение #4


Гость






Ну, разве что забросить массив All в динамическую память - но это просто извращение:
Var
all: ^TBigReg;
i, count: integer;
begin
New(all);
For i := 1 To n Do
set_bit(all^, i);

count := 0;
For i := 1 To n Do
If down_next(all^, k, i)) = Peter Then Begin
WriteLn('При значении K = ', i); inc(count);
End;
if count = 0 Then writeln('Таких значений нет...');

Dispose(All);
end.
 К началу страницы 
+ Ответить 
Altair
сообщение 6.06.2005 19:48
Сообщение #5


Ищущий истину
******

Группа: Модераторы
Сообщений: 4 824
Пол: Мужской
Реальное имя: Олег

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


Наверно тот, кто придумывал задачу, хотел что бы ее решали кольцевым списком.
Когда дети считаются, они в круге стоят, это кольцо, а каждый элемент списка детка ... сопливая :D smile.gif
шучу-шучу smile.gif


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Татка
сообщение 7.06.2005 21:02
Сообщение #6





Группа: Пользователи
Сообщений: 8
Пол: Женский

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


Спасибо всем за ответы. :flowers:
А как решить просто считалочку и посчитать сколько кругов пройдет считалочка? huh.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
AGENT_KGB
сообщение 17.12.2007 22:17
Сообщение #7





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

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


День добрый! Народ помогите решить похожую задачку:

Создать кольцевой список из N игроков. Разработать объект обеспечивающий реализацию игры в считалочку. Выбирается некоторое случайное число Rn. Если число больше числа игроков N, тогда для счета берется остаток от деления по модулю Rn на N. По найденному числу удаляется игрок - соответствующий элемент списка. Процесс выбора случайного числа продолжается пока не останется пследний игрок - победитель. Каждый запуск обеспечивает 10 различных игр. Получить список выигравших номеров.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



- Текстовая версия 20.07.2025 20:56
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"