Блог О пользователеcircumflex

Регистрация

Календарь

« Апрель 2011  
Пн Вт Ср Чт Пт Сб Вс
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
 
The Best Way To Predict The Future Is To Invent It (c) Alan Key
 

Решение задач на переливание бильярдным методом


Какие обычно бывают задачи на переливания? Даны: два сосуда (банки, коробки, чашки, бидоны, бутылки), источник воды или чего сыпучего (раковина, колодец, мешок с зерном) и то, куда можно вливать/высыпать (раковина, мусорка — неважно).

Итак
Предположим у нас есть два сосуда — на 3 и на 5 литров. Нужно получить 4 литра. Раковина, вода, все как положено. Можно просто логически придумать решение:
1) Набираем полностью сосуд 5 литров. (в первом 0л, во втором 5л)
2) Переливаем часть в 3х литровый (в первом 3л, во втором 2л)
3) Выливаем из 3х литрового сосуда 3 литра. Он становится пустым (в первом 0, во втором 2)
4) Переливаем литра из 5ти литрового сосуда в 3х литровый 2 литра. (в первом 2л, во втором 0л)
5) Набираем полностью 5ти литровый сосуд (в первом 2л, во втором 5л)
6) Переливаем из 5ти литрового в 3х литровый сколько влезет (в первом 3, во втором 4)
7) Из первого можно вылить ненужные 3 литра.

Это относительно несложная задачка, и вполне можно додумать до этих 7 действий. Но бывает хуже. Где прогадать 20—30 переливаний уже сложно. Наверно поэтому и был придуман бильярдный метод :)

«Суть метода заключается в представлении последовательности переливаний аналогично движению бильярдного шарика отражающегося от бортов стола, имеющего форму параллелограмма, на котором нанесена сетка из одинаковых равносторонних треугольников.
Нарисовав на клетчатой бумаге исходную конфигурацию, необходимо проследить возможные движения шарика в соответствии с законом «угол падения равен углу отражения» и попадание им в требуемые точки по условию задачи. Освоив ее, нетрудно получить решение задачи на переливания (пересыпания) для трех сосудов различного объема. "




По горизонтали, ясно дело, показаны литры 5ти литрового кувшина. По вертикали — 3х литрового. Предположим что бильярдный шар находится в 0 и толкаем его к 5ти литрам по горизонтали. Теперь смотрим по координатам и записываем — (0,5). Дальше он ударяется об угол и катится влево вверх, пока не дойдет до бортика. Теперь точка (3,2). Теперь влево вниз по прямой — (0,2). Опять отталкивается, летит к левому бортику — (2,0). Вправо — (2,5). Влево вверх — (3,4). И вниз — (0,4).
Вот и все. Получили нужный ответ. It's easy.

Существует ооочень много задач на эту тему. При таких же сосудах можно попытаться получить 3 литра. Или с 5ти и 7ми литровым получить 6 литров. Точно также чертится параллелограммчик и вперед.

Чтобы самому придумать задачу, надо знать всего два правила:
» Пусть имеются два пустых сосуда объемом A литров и B литров и требуется набрать из реки ровно C литров воды. Если число C не делится на наибольший общий делитель чисел A и B, то это сделать невозможно.
Если C делится на наибольший общий делитель чисел A и B, то в таком случае задача всегда имеет решение. В частности, это всегда возможно, если числа A и B взаимно просты.»

И вы никогда не получите 3 литра, если у вас есть 6ти литровый и 2х литровый сосуд :)

 
Теги: логика
 
 

Треугольники Рело, Реутерсварда и Пенроуза


«Приветствую вас, дорогие мои люди!» - как говорил великий Franky Show.. Кстати он еще много чего интересного говорил и про Теслу, и про Одри Хёпберн и прочих :)
Но сейчас речь не об этом.

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



Итак, треугольник Рело - это кривая постоянной ширины. Кривая постоянной ширины a — плоская выпуклая кривая, длина ортогональной проекции которой на любую прямую равна a. В житейском смысле постоянная ширина кривой означает, что если сделать катки с таким профилем, то книжка будет катиться по ним, не шелохнувшись. К кривым постоянной ширины относится, например, окружность.



Нарисовать его очень просто. Чертим треугольник. Берем циркуль. И на каждой стороне чертим дугу окружности, радиусом равным длине стороны.

Одно из способов его применения — это создание сверла, делающее квадратные отверстия.

Вообще не вижу смысла об этом рассказывать больше, так как тема легкая и понятная, да и объяснена гораздо лучше на сайте:
http://www.etudes.ru/ru/mov/mov001/ - про треугольник Рело.
http://www.etudes.ru/ru/mov/mov017/ - сверление квадратных отверстий
http://www.etudes.ru/utils/swf.php?id=020 ;— как в теории можно просверлить треугольные отверстия.
Ну и любимая википедия, как всегда, да :) http://ru.wikipedia.org/wiki/Кривая_постоянной_ширины

_________________________________________________________________

Треугольник Реутерсварда



Не имеет никакого отношение к кривым постоянных величин, просто звучит красиво, вот о нем и пишу :3
«Был открыт в 1934 году шведским художником Оскаром Реутерсвардом, который изобразил его в виде набора кубиков. В 1980 году этот вариант невозможного треугольника был напечатан на шведских почтовых марках.

Широкую известность эта фигура обрела после опубликования статьи о невозможных фигурах в Британском журнале психологии английским математиком Роджером Пенроузом.»

 

Фантастический рассказ


Супер! Я получила колоссальное удовольствия, прочтя этот рассказ. И не могу не поделиться им с вами. Не помню, рассказывала ли я об этом замечательном сайте http://golovolomka.hobby.ru/books/gardner/gotcha/ch1/05.html , а также про роман «Автостопом по галактике», но это сейчас не важно. В конце статьи, находящейся по этому адресу, написана такая вещь:

 

«В научно-фантастическом рассказе Гордона Диксона «Дурацкие штучки», опубликованном в августовском номере журнала Astounding Science Fiction за 1951 г., группа ученых спасают свою жизнь тем, что отвлекают ЭВМ, вводя в нее команду: «Ты должна отвергнуть утверждение, которое я сейчас ввожу в тебя, потому, что все мои утверждения ложны».»

 

Но проведя в гугле минут 20, стало ясно, что все это ложь… и провокация. Во-первых сюжет произведения совсем другой. Во-вторых этот рассказ называется The Error of Their Ways (как можно перевести это на «Дурацкие штучки» я ума не приложу) 

 

В-третьих, к сожалению, журнал Astounding Science Fiction, иначе известный, как Analog, оказался создан принципиальными жмотами. Да и перевожу с английского я так себе, поэтому на просторах рунета был найден другой журнал — «Искатель» за 1967 год N 2, чему я несказанно рада. Итак, перестаю хвастаться своей находкой, а просто выкладываю ее тут:

 

http://narod.ru/disk/7829525001/Gordon%20Dickson%20-%20The%20Error%20of%20Their%20Ways.doc.html

 

PS журналы «Искатель» - http://publ.lib.ru/ARCHIVES/I/''Iskatel'''/_''Iskatel'''.html#6702

PSS кстати, ответы, пока не забыла:

Ответы к предыдущей заметке, про преступления…


 

«На подумать»


- Доброе утро, Ватсон! Я вижу, вы уже читаете утреннюю «Таймс»? Что пишут интересного?
- Есть кое-что. Вот например: На кольцевой автостраде произошло довольно странное ДТП. Оба водителя доставлены в больницу в тяжелом состоянии. Интересно, что их машины не получили при этом никаких повреждений.
- Ну это элементарно, Ватсон. Есть еще что-нибудь?
- Холмс, для Вас все элементарно. А как на счет этого? Шахматисты — убийцы. В квартире на журнальном столике на трех ножках стояла шахматная доска и двое играли в шахматы, а третий смотрел. На минуту погас свет, а когда включился, третий лежал на полу с ножом в горле. Прибыла полиция. Первый сказал, что когда погас свет, он напряженно обдумывал очередной ход и ничего не слышал. Второй сказал, что когда погас свет, он нагнулся подложить бумажку под ножку стола, - он качался и мешал сосредоточиться — кровь прилила к голове, и он тоже ничего не слышал. Кто же
из них убил третьего?
- Ватсон, это еще проще. Даже миссис Хадсон скажет Вам, кто убийца. Нет ли чего более интересного?
- Нет. Больше ничего нет, разве только самоубийство Джеральда Батчера, лондонский банкир, который был найден мертвым в своем кабинете.
- Ну ка, ну ка…
- Он лежал на столе, в руке пистолет, висок прострелен. Шторы были опущены, горела настольная лампа, тут же стоял магнитофон. Инспектор из Скотланд-Ярда нажал на кнопку воспроизведения и услышал последнее послание Батчера: - «Я не могу ждать банкротства, это — конец…» - а потом послышался звук выстрела. Под головой банкира было залитое кровью письмо из Налоговой полиции с извещением о проверке.
- Ну вот, Ватсон, а Вы говорите, что нет ничего интересного. А может мы займемся поисками убийцы банкира….
- Холмс, это же самоубийство…
- Это убийство Ватсон, убийство, и мы с вами займемся этим убийством…
Ну а Вы готовы проверить свои дедуктивные способности?
Тогда:
1. Опишите ДТП.
2. Укажите, кто из шахматистов убийца.

3. И почему самоубийство Джеральда Батчера на самом деле — это убийство. 

 

 


 
 
 

Магия числа 23. Часть 1.


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

 



По заданному числу N найдите натуральное число K, такое что:
             __ 
1. число KK (повторенная два раза десятичная запись K)является точным квадратом некоторого натурального числа (см. примеры),
2. К при записи в десятичной системя счисления имеет длину от N до N 23 (включительно).

Так, для N=1 условию удовлетворяет, например, число К = 13223140496, т.к. оно имеет длину 11, что укладывается в диапазон от 1 до 24, а также число 1322314049613223140496 является точным квадратом натурального числа.

Формат входных данных:
Вводится одно натуральное число N (1< =N< =2323).
Формат выходных данных:
Выведите искомое число К. Если чисел, удовлетворяющих условию, несколько, выведите любое из них. Если таких чисел не существует, выведите 0.
Примеры:
1 — > 13223140496
11 — > 13223140496
10 — > 29752066116
39 — > 715976331360946745562130177514792899409

Первый час знакомства с этой задачи, я вникала в условие.
Во второй — нашла несколько проблем.

Во-первых я не представляю КАК это делать. Максимум до чего я могла додуматься, это идти циклом от 1 до тех пор пока не найду нужное число. Т.е. пока не попадется такое число, что оно является квадратом натурального и двоичная запись адекватная. Но это, естественно бред. В конце концов это не алгоритм, а лажа.

Во-вторых я знала на тот момент только паскаль. А в нем максимальное положительное число, которое я могла записать в целочисленном в виде, это 2147483647. Можно конечно использовать extended, который доходит до 10^4932, но он вещественный, да и не работала я с ним никогда. Длинная арифметика? Для моего алгоритма это будет слишком сложно и долго.

В итоге. Пошла я в наш любимый Интернет. И после часовых поисков нашла несколько формул, которые к сожалению сегодня уже потерялись, но они работали для нескольких чисел. Вообще стоило залезть на нигму, и увидеть красивую закономерность:
sqrt(1322314049613223140496) = 36363636364
sqrt(2975206611629752066116) = 54545454546
Попадались и такие перлы:
http://www.cyberforum.ru/pascal/thread213504.html
http://programmersforum.ru/showthread.php?p=675793

Но самое замечательное, что мне попадалось, это http://oeis.org/A102567/b102567.txt Кстати передаю огромное спасибо сайту oesis, за все его труды. Если задать на этой странице в поиске 13223140495, то можно опять таки увидеть закономерность :) Эта последовательность как раз тех чисел, два раза повторенная запись которого дает квадрат. Ею я и воспользовалась.
Итак, турум пум пум, моя программа на питоне (да, пришлось еще часок и в нем поразбираться) http://pastebin.com/Xw8KzgvX состоящая кстати всего из 9 строчек кода. Позже, после окончания олимпиады, разбор этой задачи выложили на сайте олимпиады. Разбор этого разбора я напишу, но не сегодня (да-да, там так мутно все расписано, что понять что-то нереально). Вот кстати ссылка на него, задача H. http://olympiads.ru/zaoch/2010/problems/zaoch_overview.pdf

PS порадовал еще сайт, со всякими ссылками на оптические иллюзии и математические фишки — http://offtop.ru/castles/v5_38839_all_.php?of406=7h3852nk8c9lb7dkk3vh3pn0r6

 

Импликация и парадокс воронов


Наконец-то добралась и до них.
На самом деле элементарная штука, но тяжело вникнуть.
Мне не один день это объясняли, сама неделю пыталась понять, как в том анекдоте:
«Представляешь себе, объясняю теорему — не понимают! Объясняю второй раз — не
понимают!! В третий раз объясняю. Сам уже понял. А они не понимают…»

Но не будем о грустном. Итак.
{Да поможет мне опять википедия}

Импликация — бинарная логическая связка, по своему применению приближенная к союзам «если, то».
Нашла на просторах рунета отличное объяснение, решила его и выложить:

если A, то B
0 — > 0 == 1
0 — > 1 == 1
1 — > 0 == 0
1 — > 1 == 1

«Если < бред >, то < бред >» - правда (Если луна квадратная, то мыши ловят кошек)
«Если < бред >, то < истина >» - правда (Если луна квадратная, то кошки ловят мышей)
«Если < истина >, то < бред >» - ложь (Если луна круглая, то мыши ловят кошек) //Это предложение — ложь
«Если < истина >, то < истина >» - правда (Если луна круглая, то кошки ловят мышей)

PS
http://www.gamedev.ru/flame/forum/?id=140254&;page=2 на самом деле, порадовала эта тема :) Да и примеры, определяющие истину или ложь тоже смешны и абсурдны — «суслик молодец = > вода мокрая»

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

Кстати еще на википедии есть классное житейское объяснение импликации, через начальника и подчиненного:

—-

В первый раз я об этой штуке услышала краем уха, когда один паренек сказал: «А вот вы знаете, что если все вороны черные, то все яблоки красные!» На мои возмущенные реплики, что это бред, стоящий рядом другой паренек возразил: «Конечно, это утверждение верно. Это ж импликация. А ты что, не знаешь?» В голове у меня мелькнуло — идиоты, слово я благополучно забыла, а дома уже залезла в гугл. И ничего по-началу путного, кроме как парадокса воронов, да еще и на французском, я не нашла.

Парадокс Воронов.
Парадокс, придуманный Карлом Гемплеем в 1940 годах, в очередной раз нам доказывает несоответствие между интуицией и логикой (печалька).
Суть:
Предположим, что все вороны черные. Это эквивалентно (равносильно) утверждению — все не черные предметы, не вороны. Так? Так. Теперь. Мы идем по улице и видим много черных воронов. Первый, второй черные. Мы начинаем убеждаться в истинности утверждения, что все вороны черные. Сотый, стопервый — нам уже надоедает. За это время мы не увидели ни одного белого, синего или еще какого-нибудь цвета ворон, кроме черных. Тысячный, миллионный — «Да», - думаем мы, - «Скорей всего все вороны черные». Но, согласно второму утверждению, если мы увидим много красных яблок, то это убеждает нас в том, что все не черные предметы, не вороны, и, по логике, должно убедить в том, что все вороны черные. Но в жизни так не бывает. Интуиция действует иначе. По интуиции мы можем убедиться в том, что все яблоки красные; все не черное — не вороны; но это не заставить нас поверить в то, что все вороны черные.

PSS если вы осилили эту заметку до конца, то прошу, не спрашиваете — а для чего это нужно :) Пойму — отвечу. Пока же, просто делюсь тем, что знаю.

 

От чего зависит?


Пока влом писать статью об импликации и парадоксе воронов, так что пока кину приятную мелочь :)

Какого пола твой компьютер?
1) Откройте блокнот
2) Наберите сами или скопируйте CreateObject(«SAPI.SpVoice»).Speak«I love you»
3) Сохраните как xyz.vbs
4) Запустите — мужской голос у вас мальчик, если женский — девочка.


Понятия не имею пока отчего это зависит :(
Ясен пень, что не от пола)
Может от винды.. или еще чего..
узнаю

 
Теги: забавно
 
 

Парадокс Монти Холла


Интересная достаточно вещь. О которой я, к сожалению, узнала сравнительно недавно. Вкратце о нем можно посмотреть на youtube, отрывок из фильма «Двадцать одно», но дабы запомнить, напишу разбор ниже. Честно — понятия не имею, хороший этот фильм или плохой. И сколько бы не уверяла себя в том, что обязательно его посмотрю — все равно ж буду только врать себе и так и не найду эти злосчастные 123 минуты.

Смотреть

Кстати название парадокса происходит от имени ведущего игры «Let's make a Deal».

Что интересно, до этого уже существовали как минимум два аналогичных парадокса — Bertrand's box paradox, где вместо дверей — коробки, а вместо автомобиля и самоката — золотые и серебряные монеты. И «Проблема трёх заключённых»

Но вернемся к Монти.



Задача:

Представьте, что вы стали участником игры, в которой вам нужно выбрать одну из трех дверей. За одной из дверей находится автомобиль, за двумя другими дверями — козы. Вы выбираете одну из дверей, например, номер 1, после этого ведущий, который знает, где находится автомобиль, а где — козы, открывает одну из оставшихся дверей, например, номер 3, за которой находится коза. После этого он спрашивает вас, не желаете ли вы изменить свой выбор и выбрать дверь номер 2. Увеличатся ли ваши шансы выиграть автомобиль, если вы примете предложение ведущего и измените свой выбор?



Ответ:
Да, стоит изменить дверь, т.к. вероятность выигрыша увеличиться с 1/3 до 2/3.

Решение:
1) Думаю, можно согласиться, что если не менять выбор, то нам по барабану, покажут нам дверь другую или нет. Вероятность выиграть автомобиль 1/3, или, как он говорит в фильме 33,3%. Вероятность выиграть самокат 2/3, или же около 66%
2а) Если мы решили менять выбор, и при этом сначала нам попалась автомобиль. Вероятность, что за этой дверью именно он 33% (и да, нам повезло). Мы меняем наш выбор, и естественно получаем оставшийся самокат. В итоге, в случае если мы меняем наш выбор, получить самокат у нас вероятность 33%.
2б) Аналогично 2а. Самокат, пусть за дверью 1, мы можем получить с вероятностью 66%. Т.е. таких случаев бывает в два раза больше, чем 2а. Мы меняем свой выбор, и получаем автомобиль.

 
Теги: парадоксы
 
 

Conway's Game of Life


Помню, первый раз я столкнулась с этой игрой года три назад. Хотелось мне что-нибудь узнать про хакеров (юношеский максимализм, все дела — ну, вы понимаете). Помню в тот день я разочаровалась. Узнав, что хакер, на самом деле, это всего лишь «чрезвычайно квалифицированный ИТ-специалист», а никакой ни крутой взломщик, у меня перевернулось что-то в представлении этого мира. Но тем не менее, я нашла эту забавную эмблемку, и подпись к ней:

Эмблема хакеров — предложена в октябре 2003 года Эриком Рэймондом как символ отношения к хакерской культуре. На эмблеме изображён «планёр» (англ. glider) — одна из фигур игры «Жизнь».


На самом деле мне было наплевать, откуда она, зачем, и почему именно она. Просто красиво. И можно нарисовать на краю тетрадки и думать, что только крутые избранные смогут меня понять. Забавно, да?

И вот спустя три года мне задают написать игру «Жизнь» на паскале. Придумал эту игру, несложно догадаться, Джон Конвей, чуть ли не в 1970 году. За что респект ему и уважение :)

Ничего сложного, на самом деле, в реализации этой игры, нет. Суть игры в чем:

1. Есть бесконечная плоскость(ака вселенная). В каждой клетке плоскости — либо живая клетка, либо мертвая (простите за тавтологию).
2. Все в этой вселенной происходит по таким правилам:
а) Выживание. Каждая клетка, имеющая вокруг себя две или три соседние клетки, выживает и переходит в следующее поколение.
б) Гибель. Каждая клетка, у которой больше трёх соседей, погибает, то есть снимается с доски из-за перенаселённости. Каждая клетка, вокруг которой нет соседей или же занята всего одна клетка, погибает от одиночества.
в) Рождение. Если число клеток, с которыми граничат какая-нибудь мертвая клетка, в точности равно трём (не больше и не меньше), то на этой клетке происходит рождение нового «организма», то есть следующим ходом на неё ставится одна фишка.
3. ????
4. PROFIT!

Чтобы это понять, надо просто поиграть. Мне понравилась чья-то реализация этой игры на flash — http://romka.eu/files/gameoflife/GameOfLife.html
Рисуем
Запускаем

Наслаждаемся.

Моя паскалевская масенькая прога будет храниться тут :)
LIFE.EXE



Прочитав по этой теме википедию —  http://ru.wikipedia.org/wiki/Жизнь_(игра), у меня осталось два неразобранных вопроса:
1) Что такое поверхность тор, и как на нем можно написать эту программу.
2) Как реализовать: «Более сложный, но и более быстрый алгоритм составляет списки клеток для просмотра в последующем поколении; клетки, которые не могут измениться, в списки не вносятся. Например, если какая-либо клетка и ни одна из ее соседей не поменялись на предыдущем ходу, то эта клетка не поменяется и на текущем ходу» 

PS а вообще, что пишут про этот логотип http://fishbowl.pastiche.org/2003/10/30/why_the_hacker_logo_is_stupid/


 
 
 

about


Даже не знаю чем продолжить. Впервые веду дневник.

Я обычная ученица обычной московской школы, с одной лишь голубой мечтой — стать программистом. Это вкратце обо мне :)

По сути, сначала circumflex.blog задумывался glider.blog, так как мне очень понравилась The Game of Life (о которой я подробно напишу позднее). Но данное имя было занято и пришлось довольствоваться чем есть. Впрочем, я рада, что так вышло.

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

Однако, это было бы эгоистично с моей стороны. :) И я решила, что действовать сообща интересней. Я не рассчитываю на читателей, более того, я нигде не опубликую этот блог — будь то вконтакте или на одноклассниках. Тот кто интересуется этим также как я, как-нибудь набредет сюда. Так чаще всего и бывает. А кто нет — так смысл мне ему навязываться? Человек все равно должен заниматься тем, что ему нравится. И если его профессия или хобби приносит удовольствие, то разве можно желать чего-то большего от работы, не так ли? :)
 

Генезис


The circumflex — (^) - Циркумлфекс — диакритический (то есть нужный для изменения или уточнения значения других знаков) знак и компьютерный символ.
{В паскале обозначает «указатель»}