Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

*Математика и программирование

Автор mnashe, июля 2, 2015, 10:53

0 Пользователи и 1 гость просматривают эту тему.

mnashe

Цитата: _Swetlana от июля  2, 2015, 16:57
Цитата: mnashe от июля  2, 2015, 16:38
Цитата: _Swetlana от июля  2, 2015, 16:26А если программа бы не выдала ни одного решения? Где гарантия, что их действительно нет?
Это исключено, поскольку программа перебрала все возможные варианты (больше миллиарда — 1,147,715,240).
Про ту программу автор тоже думал, что она перебрала все возможные варианты.
Дык
Цитата: Даниэль link=msg=2521894#2521894 от
задача тривиальная.
У меня действительно очень простая задача и очень простой алгоритм.
Щас объясню алгоритм перебора.
Если не учитывать порядок, то у каждой пары есть только три допустимые соседние пары. Пример я выше уже приводил: для 1-2 это 3-4, 3-5 и 4-5.
Берём и нумеруем допустимых соседей. Для каждой из 10 пар их всего три, а всего есть 19 переходов, стало быть, задача сводится к последовательному перебору всех 19-значных троичных чисел.
Проверки две: одна выполняется на каждом шагу, другая только в конце (после 19-го шага).
Первая проверка: если на очередном преобразовании вышла пара, встречавшаяся ранее уже дважды, то все числа, начинающиеся с этой же последовательности, запрещены и перебирать их нет смысла, так что сразу увеличиваем тот разряд, где мы наткнулись на запрет. Это резко сокращает количество перебираемых вариантов.
Вторая проверка: последняя пара является допустимым соседом первой.
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

mnashe

Цитата: Flos от июля  2, 2015, 17:03
У меня для тех же целей в ванной песочные часы на 3 минуты.
У меня тоже есть. Для той же цели куплены. Но стоят в спальне про запас.
Преимущества самоделки:
1. Красиво! С детства обожаю цветные лампочки :)
2. Не бьётся при падении.
3. Может пользоваться одновременно любое количество людей, стартовавших несинхронно. Просто каждый должен отметить в голове свою точку старта.
У наших детей почти всегда ситуация такова. Так что актуально. Песочных часов потребовалось бы 2 штуки.
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

mnashe

Цитата: Даниэль от июля  2, 2015, 17:03
Вот это тебе делать нечего, уж прости :) Если бы я взялся заниматься чем-то подобным на работе, меня бы шеф сразу остановил. Просто потому, что там вопрос звучит так: что дешевле - потратить 100 долларов на готовое устройство и 10 минуты на его программирование или же потратить 100 долларов на час работы программиста.
Во-первых, то, что ты говоришь, применимо лишь для продукта, создаваемого в единственном экземпляре. Ну или, если немного сдвинуть диапазоны, для маленьких серий.
Во-вторых, ты чего-то не понял. Моя задача в части программирования настолько проста, что хоть на яве, хоть на ассемблере на неё уходит несопоставимо меньше времени, чем на рисование и производство печатной платы (или распайку на макетке, как я сделал с уже существующим вариантом, без МК).
Так что нет смысла и говорить об этом.

Цитата: Даниэль от июля  2, 2015, 17:03
Исключение, конечно, составляют сверхпопулярные устройства, где одна и та же программа тиражируется в миллионах экземпляров; там цена и правда может быть очень маленькой.
Во-о-от!
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

mnashe

Цитата: Даниэль от июля  2, 2015, 17:16
Все науки делятся на 4 группы.
1) Естественные науки. Физика там, химия, биология, геология.
2) Неестественные науки. К примеру, шекспироведение. Шекспира читать надо, а не науки вокруг него разводить.
3) Противоестественные науки. Ну это все знают: научный атеизм, история КПСС и т.п. Сегодня я бы добавил "науку каббалу" Лайтмана.
4) Сверхъестественные науки. Это, по сути, одна наука, и это математика.
;D ;up:
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

_Swetlana

Цитата: VLX от июля  2, 2015, 17:15
Цитата: _Swetlana от июля  2, 2015, 17:05
Меня повалили и дружно пинали ногами  ;D
Интересно, чем пинали аргументировали...
Ногами. А могли ведь коньками с ботинками. С тех не выпендриваюсь, пишу не знаю о чём  ::)
🐇

_Swetlana

ЦитироватьСверхъестественные науки. Это, по сути, одна наука, и это математика.
О, как раз тема всплыла, репутация постов на ЛФ. Там ссылка есть, на поиск репутации по имени. Попутала малость. Вот этот пост:
Цитироватьматематическую логику я бы отнесла к языкознанию, как науку о языке, а всё остальное, пожалуй, к метафизике (как  разделу теологии), кое-что приходится принимать на веру
🐇

Lodur

Offtop
Цитата: _Swetlana от июля  2, 2015, 18:59А могли ведь коньками с ботинками.
Приятно читать оптимиста. У вас, небось, и стакан всегда наполовину полон... ;)
8-й Девственник Лингвофорума

If the doors of perception were cleansed, everything would appear to man as it is: infinite. (W. Blake)
Какая потребителю разница, какой продукт лучше не работает?.. (Awwal12)

_Swetlana

Offtop
Цитата: Lodur от июля  2, 2015, 21:52
Offtop
У вас, небось, и стакан всегда наполовину полон... ;)
На целый стакан у меня уже здоровья нет  ;D
🐇

Ыняша

Есть изоморфизм Карри-Говарда: программа — это доказательство теоремы. А по hott, есть изоморфизм матлогики, теории множеств, теории гомологий и теории типов.  ;)
Мой номер на ЛФ #43854 — ура, я чётник! Чётники лучше нечётников.
С точностью до полпроцента в нановеке — пи секунд.

_Swetlana

Цитата: Ыняша от июля  2, 2015, 23:16
Есть изоморфизм Карри-Говарда: программа — это доказательство теоремы. А по hott, есть изоморфизм матлогики, теории множеств, теории гомологий и теории типов.  ;)
Никогда об этом не слышала.
Программа (алгоритм) = машина Тьюринга = частично-рекурсивная (вычислимая) функция = алгорифм Маркова, всё это чисто конструктивные вещи. На конструктивных доказательствах  даже матанализ не построить, в чём  убедились ещё в прошлом веке.

Есть обратная интересная проблема. Современная математика так сложна, что на проверку правильности полученных результатов нужны годы.  Если бы удалось формализовать запись доказательства до степени программы и заставить всех математиков выучить этот язык, то проверять логику доказательства можно было бы машинным способом.   
🐇

mnashe

Цитата: Даниэль от июля  2, 2015, 16:41
Но без математики все равно никуда: разработка правильного и быстрого алгоритма остается серьезной математической задачей.
Ага. Даже в моей простенькой задачке пришлось слегка математически подумать, чтобы перебор не растянулся на несколько недель.
Представь, если бы я перебирал не миллиард вариантов (3¹⁹), причём периодически перескакивая сразу через десятки и сотни миллионов, а все 10²º, решая задачу тупо в лоб. Я сначала посчитал, сколько времени займёт такой перебор (ибо зачем оптимизировать, если программа пишется на один раз?), и понял, что так не выйдет. Тогда вот и нашёл этот вариант с перебором связей, а не самих групп.
Адепт единственного числа и безродового склонения
שָׁלוֹם עֲלֵיכֶם!

Ильич

Был такой физик Ричард Фейнман. Его "Фейнмановскими лекциями по физике" я просто восхищался в своё время. И там он написал, что математика вообще не наука, потому что она не изучает природу.
Я для себя решил, что математика всё же изучает природу - природу человеческого мозга.

_Swetlana написала, что математическую логику она бы отнесла к языкознанию. Это вряд ли можно сделать. Математика вообще язык, только он столь точен и столь ограничен, что на нем нельзя разговаривать, как и на любом языке программирования. И вот тут и есть причина, почему люди с математическим образованием, или просто со склонностью к простому и четкому мышлению были востребованы в программировании, как профессии в начале становления этой профессии.

Но как уже написал Даниэль сейчас программирование уже нельзя назвать профессией. Эта область деятельности развилась настолько, что здесь сейчас нужны самые разные специалисты от художников до тех же математиков.

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

Только ближе к 60-то годам пришлось сменить род занятий. А с этого года вообще чистый пенсионер. Развлекаюсь.

Ильич

Цитата: _Swetlana от июля  2, 2015, 23:32Есть обратная интересная проблема. Современная математика так сложна, что на проверку правильности полученных результатов нужны годы.  Если бы удалось формализовать запись доказательства до степени программы и заставить всех математиков выучить этот язык, то проверять логику доказательства можно было бы машинным способом.
Это уже делают, насколько я слышал. Но не для самых сложных случаев.

_Swetlana

Математика - язык. А математическая логика - наука о языке. Логично  ;D
Помню, как С.Б. Стечкин на лекции сказал, что сплайны - это кусок хлеба. Математика кормит (если не брать преподавание) только в каких-то прикладных задачах.
🐇

_Swetlana

ЗЫ. Меня всю жизнь муж-математик кормил (и продолжает), а не математика  :) хоть я и занималась прикладными задачами дискретной оптимизации, а муж - функциональным анализом.
🐇

Ильич

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

Ильич

Цитата: _Swetlana от июля  2, 2015, 23:50
Математика - язык. А математическая логика - наука о языке. Логично  ;D
Помню, как С.Б. Стечкин на лекции сказал, что сплайны - это кусок хлеба. Математика кормит (если не брать преподавание) только в каких-то прикладных задачах.
Нет, совсем не логично.
А про математику, как способ прокормиться это вы в качестве реплики к моему сообщению написали?

Ыняша

Цитата: _Swetlana от июля  2, 2015, 23:32
Никогда об этом не слышала.
Программа (алгоритм) = машина Тьюринга = частично-рекурсивная (вычислимая) функция = алгорифм Маркова, всё это чисто конструктивные вещи. На конструктивных доказательствах  даже матанализ не построить, в чём  убедились ещё в прошлом веке.
Вкратце: есть типы, которые можно отождествить с высказываниями. Объект типа Т — есть доказательство этого высказывания. Теорема формулируется в типах и их производных (что соотвествует логическим операциям, предикатам и т.п), тогда программа, как объект итогового типа будет её доказательством.

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

Но таки да это конструктивные вещи :3
На этой основе делают унивалентные основания математики — программу построения средствами гомотопической теории типов универсального формального языка, являющегося конструктивными основаниями для современных разделов математики и обеспечивающего возможность автоматической проверки правильности доказательств на компьютере.
Мой номер на ЛФ #43854 — ура, я чётник! Чётники лучше нечётников.
С точностью до полпроцента в нановеке — пи секунд.

From_Odessa

Цитата: Ильич от июля  2, 2015, 23:41
Я для себя решил, что математика всё же изучает природу - природу человеческого мозга.
С этим в полной мере не могу согласиться (с тем, что математика изучает природу только в этом разрезе). На мой взгляд, математика изучает в том числе и природу, вернее, говоря шире, мир или Вселенную, какой мы ее знаем и какой мы ее получаем в наших ощущениях. Математика изучает, в числе прочего, формы, которыми может быть представлена Вселенная (ее составляющие) или материя, соотношение между этими формами, она изучает также... как бы это сказать... общие механизмы, на которых строится взаимоотношение между различными объектами/явлениями и процессами. Изучает на базе очень высоких уровней абстракции и идеальных форм/объектов, но изучает. Я так полагаю.

Я тут вот писал в свое время еще свои мысли о математике - О математике

Хотя частично я уже с самим собой не согласен.

Flos

Цитата: Ильич от июля  2, 2015, 23:41
программирование уже нельзя назвать профессией. Эта область деятельности развилась настолько, что здесь сейчас нужны самые разные специалисты от художников до тех же математиков.
+1000
Всю трудовую жизнь занимаюсь программированием, математика как таковая потребовалась ровно один раз (нужно было шифровать данные открытым ключом). 

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

_Swetlana

Цитата: Flos от июля  3, 2015, 09:28
Всю трудовую жизнь занимаюсь программированием, математика как таковая потребовалась ровно один раз (нужно было шифровать данные открытым ключом). 
:E:
Ипотеку не брали, проценты не рассчитывали?
🐇

_Swetlana

Цитата: Ильич от июля  3, 2015, 00:00
Цитата: _Swetlana от июля  2, 2015, 23:50
Математика - язык. А математическая логика - наука о языке. Логично  ;D
Помню, как С.Б. Стечкин на лекции сказал, что сплайны - это кусок хлеба. Математика кормит (если не брать преподавание) только в каких-то прикладных задачах.
Нет, совсем не логично.
А про математику, как способ прокормиться это вы в качестве реплики к моему сообщению написали?
В качестве реплики.
Что не логично? 
🐇

Flos

Цитата: _Swetlana от июля  3, 2015, 09:39
Ипотеку не брали, проценты не рассчитывали?
Ага, смешно.
У меня жена деньги считает, мне не доверяет.
;)

_Swetlana

Сыну задачки не решали?  ;D
🐇

zwh

Цитата: Lodur от июля  2, 2015, 12:51
Как-то читал у кого-то из великих американских программистов (не помню, у кого... то ли создателя Паскаля, то ли создателя Си), что программирование отнесено к прикладной математике по ошибке. На самом деле, это область прикладной лингвистики, и из линвистов получаются намного лучшие программисты, чем из математиков. :) Мысль парадоксальна, но только на первый взгляд.
Вирт -- швейцарский программист, если чё.

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр