Перейти к содержимому
Форумы SkyCentre Прыжки с парашютом
mmoustaf

Программисты философствуют

Recommended Posts

Twilight_Sun, походу, все бояны знает :))

со списком-то чо - можно же сравнивать показатели, неинтересно. или надо условие наложить что этого нельзя.

не совсем понял, о каких показателях идет речь

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Twilight_Sun, походу, все бояны знает :))

не совсем понял, о каких показателях идет речь

О ссылках\указателях видимо.

У меня тоже вопрос - сколько итерраторов по списку можно использовать одновременно?

Я тоже подкину задачку для любителей программировать роботов.

Есть поле 3*3. Соседние клетки могут быть разделены перегородкой, но поле полносвязное. Исполнителя типа "робот тупой, одна штука", с командами вверх-вниз-вправо-влево-проверить скидывают в случайную клетку поля. Задача: написать последовательность команд, которая "проверит" каждую клетку поля, при том, что у робота нет никакой логики (только конечная лента команд, памяти нет) и никакой обратной связи (если робот идёт в стенку, он просто остаётся на месте).

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
О ссылках\указателях видимо.

ясно

это абстрактная задача. Не привязанная к конкретному языку программирования. Но на собеседовании можно сказать: "Молодец, возьми с полки пирожок. А теперь представим, что адреса сравнивать нельзя" :)

У меня тоже вопрос - сколько итерраторов по списку можно использовать одновременно?

один

Хороший вопрос. Возьми еще один пирожок :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ясно

это абстрактная задача. Не привязанная к конкретному языку программирования. Но на собеседовании можно сказать: "Молодец, возьми с полки пирожок. А теперь представим, что адреса сравнивать нельзя" :)

один

Хороший вопрос. Возьми еще один пирожок :)

Плохо дело. Ты обречен мотаться туда-сюда по поезду, считая вагоны и запоминая в каких ты включал свет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Ты обречен мотаться туда-сюда по поезду, считая вагоны и запоминая в каких ты включал свет.

Гы :)

Ты на верном пути ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гы :)

Ты на верном пути ;)

А в каких выключал соответственно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Justas, мне несколько лет назад сотрудники подарили табличку с надписью "боян", чтобы я речевой апарат не напрягал, когда они анекдоты рассказывают.

да, опечатался (работа наложила отпечаток), указатели конечно же имел ввиду. Поэтому чтобы не страдать уточнениями насчет языка (не везде же есть итераторы и т.п.) и не вводить искусственных ограничений - с поездом лучше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Гы :)

Ты на верном пути ;)

Давайте лучше про робота.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
А в каких выключал соответственно.

не, это уже слишком сложно. Запоминать полностью начальное состояние части списка, где уже побывал, не нужно. Впрочем, даже если можно, можешь описать алгоритм нахождения длины списка таким способом? Просто любопытно :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
не, это уже слишком сложно. Запоминать полностью начальное состояние части списка, где уже побывал, не нужно. Впрочем, даже если можно, можешь описать алгоритм нахождения длины списка таким способом? Просто любопытно :)

Целиком не надо конечно, надо только последние.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Justas, мне несколько лет назад сотрудники подарили табличку с надписью "боян", чтобы я речевой апарат не напрягал, когда они анекдоты рассказывают.

да, у меня есть Друг точно с таким же недостатком. Отбил всякое желание рассказывать ему анекдоты.

Поэтому чтобы не страдать уточнениями насчет языка (не везде же есть итераторы и т.п.) и не вводить искусственных ограничений - с поездом лучше.

согласен, просто мне ее давали вот в такой вот интерпретации, и диалог продолжался, пока я не нашел решение :)

Целиком не надо конечно, надо только последние.

Очень хорошо! :) Иииии???...

Поделиться сообщением


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

согласен, просто мне ее давали вот в такой вот интерпретации, и диалог продолжался, пока я не нашел решение :)

Очень хорошо! :) Иииии???...

Ну и смотришь поменялись они с прошлого захода или нет. Скука. Давайте про робота.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Ну и смотришь поменялись они с прошлого захода или нет.

немного не понял: кто они? Это кольцевой список, у которого нет ни начала, ни конца.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Плохо дело. Ты обречен мотаться туда-сюда по поезду, считая вагоны и запоминая в каких ты включал свет.
Выключить сначала во всех)

А вообще (как далекого от програминга) в чем ограничения? запоминать паттерн внутри себя обходчик может?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Выключить сначала во всех)

а как это поможет посчитать количество элементов? ;)

список может быть сколь угодно большой

А вообще (как далекого от програминга) в чем ограничения? запоминать паттерн внутри себя обходчик может?)

даже если может, как это поможет? Ты не знаешь величину списка, а любая последовательность элементов может повторяться много раз.

Есть поле 3*3. Соседние клетки могут быть разделены перегородкой, но поле полносвязное. Исполнителя типа "робот тупой, одна штука", с командами вверх-вниз-вправо-влево-проверить скидывают в случайную клетку поля. Задача: написать последовательность команд, которая "проверит" каждую клетку поля, при том, что у робота нет никакой логики (только конечная лента команд, памяти нет) и никакой обратной связи (если робот идёт в стенку, он просто остаётся на месте).

то-есть, если робот уперся в стенку, но не успел обойти все клетки, то задача не решена? То-есть, в некоторых случаях при определенной комбинации стенок, задача не имеет решения?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
О ссылках\указателях видимо.

У меня тоже вопрос - сколько итерраторов по списку можно использовать одновременно?

Я тоже подкину задачку для любителей программировать роботов.

Есть поле 3*3. Соседние клетки могут быть разделены перегородкой, но поле полносвязное. Исполнителя типа "робот тупой, одна штука", с командами вверх-вниз-вправо-влево-проверить скидывают в случайную клетку поля. Задача: написать последовательность команд, которая "проверит" каждую клетку поля, при том, что у робота нет никакой логики (только конечная лента команд, памяти нет) и никакой обратной связи (если робот идёт в стенку, он просто остаётся на месте).

работа робота должна когда то заканчиваться? Многократная проверка одной клетки допускается? ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Многократная проверка одной клетки допускается? ;)

AFAIK у робота ваще нет логики. Он тупой и ничего не может проверять. blinkenlights, правильно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
AFAIK у робота ваще нет логики. Он тупой и ничего не может проверять. blinkenlights, правильно?

тогда все просто... проверь текущую клетку, повернись в случайную сторону, шагни вперед, вернись к началу программы...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
а как это поможет посчитать количество элементов? wink.gif

список может быть сколь угодно большой

Мы вроде на вагоны перешли?))

даже если может, как это поможет? Ты не знаешь величину списка, а любая последовательность элементов может повторяться много раз.
Ну наткнулся наповтор - отступил на несколько шагов назад - дописал контрольную последовательность и пролистал список до не снова - все совпало - значит нашел)

тогда все просто... проверь текущую клетку, повернись в случайную сторону
для этого у робота должен быть генератор случайных чисел

Поделиться сообщением


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

сложность в том, что робот тупой. Он не может ничего проверять. Он сделает все, что ты ему скажешь до начала выполнения алгоритма. blinkenlights, мы Тебя правильно понимаем?

Мы вроде на вагоны перешли?))

так это ш айтишная задача - у этих гиков вагонов может быть хоть мильйон :D

Ну наткнулся наповтор

сложность в том, что повтор не является признаком конца. В закольцованном списке может быть сколь угодно много повторяющихся последовательностей.

для этого у робота должен быть генератор случайных чисел

он тупой, у него нет никакой логики, тем более такой сложной, как генератор случайных чисел :))

Кстати, blinkenlights, сколько может быть перегородок? Иначе, в некоторых случаях задача не имеет решения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
сложность в том, что повтор не является признаком конца. В закольцованном списке может быть сколь угодно много повторяющихся последовательностей.
Да (хотя начиная со вполне конечной длины последовательности вероятность ее случайного повторения становитцо бесконечно малой)

поэтому и проверяем вернувшись и дописав контрольный паттерн и снова вперед до начала этого паттерна и последовательности)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Да (хотя начиная со вполне конечной длины последовательности вероятность ее случайного повторения становитцо бесконечно малой)

поэтому и проверяем вернувшись и дописав контрольный паттерн и снова вперед до начала этого паттерна и последовательности)

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

Поделиться сообщением


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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Justas, невозможно, единственное что можно так это зажигать в виде последовательности Баркера или m последовательности какойнить, но тогда все равно получится сказать только с какой то большой долей вероятности, но не точно. Предположим - длина буфера 3 - идем один проход - устанавливаем биты, второй проход считываем 3 бита - сходится? нет? предположим длина буфера 4... и так далее

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Погоди, контрольный паттерн - наш, его случайное повторение (да еще плюс с повторением остальной первоначально вскрытой последовательнсоти) при некоторой длине становиться бесконечно маловероятным

Паш, вероятность там ни при чем. Возьми последовательность из 1000 элементов. Когда Ты обнаружишь повторение этой последовательности, это вовсе не значит, что кольцо состоит из 1000 элементов (хоть это один из вариантов). Оно может состоять из 2000 элементов, где Твоя последовательность повторится дважды.

Поверь, решение простое, как два пальца оросить ;) Но я сохраню интригу, если кто-нить раньше решение не сольет :))

Justas, невозможно

Что именно невозможно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Создать...