Кремнев Валерий @LonelyDeveloper97
Математика, Нейробиология, Программирование
Информация
- В рейтинге
- Не участвует
- Откуда
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Дата рождения
- Зарегистрирован
- Активность
Математика, Нейробиология, Программирование
Простое число — это такое число, которое не делиться на предыдущие простые, первое простое число — 2.
Рекурсивное определение бесконечного множества чисел. Проблема в том, что оно не «содержит бесконечное число элементов». Это не массив.
Для того, чтобы узнать какое простое число идет под номером 105513248123 вам придется потратить запредельное количество энергии и времени.
С другими рекурсивными определениями будет тоже самое. Вы не сможете сказать, что они дадут на N шаге алгоритма.
Давайте продолжим на примере простых чисел.
У вас есть функция, она умеет считать все простые числа. Вам для каких-то целей потребовались простые числа от [49млн, 50млн]. Простое число номер 40 млн, простое число номер 40 млн + 1 и т.д.
Вот ваш код, для того, чтобы по определению считать простое число. Он короткий.
Вместо него вы можете залить уже посчитанные простые числа от 49млн до 50млн. Это огромный файл весом больше мегабайта. Он очень длинный и займет очень много места.
Зато доступ к ним будет за O1, если распихать их в массив.
Выход у двух систем будет одинаковый — вы получите свое простое число. Просто в одном случае это займет меньше секунды, а в другом… Я не знаю точно. Часы? Дни? Годы?
А можете подсказать где это в тексте? Я не вижу такого. Я писал про действия, а не про системы…
Вот: github.com/lonelydeveloper97/ModelExample/tree/master/src/com/lonelydeveloper97
Теперь «кровавые недоопределения» обрели форму кода, применены для описания системы из 2 монет, и считают сложность 300 перебрасываний монеток, по «недоопределению».
Можно пощупать, поиграться, построить свои модели. It works.
К тому же, все получилось намного короче.
Состояние одной монетки — это любой из элементов орел|решка|ребро. Возможные состояния монетки: {Орел, Решка, Ребро}.
Состояние элемента и его возможные состояния — это сам элемент. Он уже определен, мы не разбиваем его дальше.
Состояние системы две монетки: Пара состояний монеток 1 и 2. В моем определении состояние — рекурсивная функция, условие выхода из рекурсии — функция применена к элементу.
E — функция текущего состояния системы.
S — система. S = {S1...Si}, где Sk — подсистемы системы.
E(S) = (E(S1),… E(Si)). Если Sn — Элемент, то E(Sn) = Sn.
Для монеток:
Элементы: {орел, решка, ребро};
S — 2 монетки. S1 — Монетка 1, S2 — Монетка 2.
V = {орел, решка, ребро} — возможные состояния. Одинаковы для обеих монет.
e1 = орел. Это состояние монетки 1. Принадлежит V.
e2 = решка. Это состояние монетки 2. Принадлежит V.
S={S1,S2}, S1 = (V, e1), S2 =(V, e2).
E(S1) = e1. E(S2) = e2
E(S) = (e1, e2) = (орел, решка)
Перекинули монетки, E(S2) стало Орел.
E(S) = (e1, e2) = (орел, орел)
Система две по две монетки:
SS = {S2m1, S2m2}
E(SS) = (E(S2m1), E(S2m2)) = ((e1,e2), (e1,e2)) = ((орел, решка), (орел, решка)).
Я написал это математически и на Java. Вы можете выкачать репозиторий, который я скинул, изучить код. Его не много. Соотнести его с математическим выражением определений. Поставить breakpoint'ы и посмотреть, что оно работает ровно как я сказал. Попробовать описать другие системы в таких же терминах.
Про парсер на мобилах не знал. Сейчас сам зайду с мобильного и посмотрю.
Состояние системы две монетки = пара состояний монеток. (орел, решка) или (ребро, решка) и т.д.
Для одной монетки состояние действительно вырождается. Оно может быть: орел | решка | ребро.
Я решил написать все на Java, думаю если вам знаком любой объектный язык — будет проще)
github.com/lonelydeveloper97/ModelExample/tree/master/src/com/lonelydeveloper97/model
Совокупная сложность действий обозначена за C.
Изменение — одно из этих действий. Его сложность обозначена за Cи.
После совершения действия — система поменяется. У нее будет новая совокупная сложность. Она обозначена за C'.
Это как?
Смотрите. Я астроном и изучаю звезды. Я хочу определить цвет звезды. Как я могу это сделать, не зная об ее скорости? Если я просто посмотрю на нее — то я увижу не правильный цвет. Потому что есть эффект доплера. Т.Е. если меня интересует цвет, то меня сразу интересует скорость.
Кстати, оба понятия связаны еще и с температурой.
А если вспомнить про энергию, которая связана с массой, да еще и через скорость…
Как вы собираетесь независимо их изучать?
Почему? Что такое объект, и почему то, что изучают эти дисциплины — не объекты? И если «не объект» — это субъект, то что такое субъект? Когда я иду в словарь, там пишут — это человек. Окей, я взял, подошел и пнул стол. Это взаимодействие было субъективным, ведь в нем участвовал я? После этого на столе появились субъективные вмятины, а у меня субъективно распухли пальцы?
Простите, но пока у нас есть только информация что объективно — это не субъективно, а субъективно это не объективно. Я пытаюсь разорвать этот круг и соотнести эти вещи с реальностью, чтобы они наконец-то перестали циклиться друг на друга.
Какую часть реальности описывают слова субъект и субъективно и чем эта часть реальности отличается от остальной, объективной?
Я имел ввиду, что если вам на собеседовании сказали, что у компании чистый код и хорошая документация, и вы в это поверили, то на простоту работы с кодом это не повлияет.
Более того, даже если весь отдел считает, что код написан хорошо и доки есть — это тоже не повлияет на результат. Их убеждение о своем коде и доках может быть неверно.
Если код представлял из себя спагетти — он будет спагетти. Если «документацией» являются комментарии формата «здесь я сложил 2 числа» — у кода нет документации.
И никакие желания, уверенность и проч. тут не помогут.
Спасибо за комментарии, я с радостью поправлю эти моменты.
Я смотрел на колмогоровскую сложность и на сообщение минимальной длины. Но когда интерпретатором сообщения является мозг, то минимизация «записи» с сохранением количества информации — не работает.
Есть определенные проблемы с тем, как работает человеческая память. Из-за них, для упрощения чтения, модель в некоторых случаях должна быть «избыточна». Это тема одной из следующих статей.
Вполне возможно, что я просто плохо понял сложность Колмогорова или концепт СМД и их можно использовать в «условиях мозга». Но я не умею.
Смотрите.
Я прочитал ваше сообщение. Это вызвало вполне объективную реакцию фоторецепторов в моем глазу. По оптическому нерву сигнал передался в мой таламус и оттуда ушел в зрительную кору. После этого, произошла активация различных участков в моем мозгу, отвечающих за хранение информации, связанной с тем, что я прочитал в вашем сообщении. Эта информация попала туда таким же образом, как и ваше сообщение.
После этого этого множество сигналов пошло в префронтальную кору. Часть из них отфильтровалась, другая — прошла в нее, и попала в кратковременную память и была использована для принятия мною решения о написании этого сообщения.
Где в этом процессе начинается «субъективное восприятие»?
Мне казалось, что это слово используется для описания «модели реальности», составленной мозгом, на основе хранящейся в нем информации. Но то, что информация в нем хранится — это объективно. Или нет? Ведь она тоже является «моделью» информации извне. Но она получена вполне себе объективным образом, через изменение состояния нейронных связей, который вызван такой же объективной их активацией из-за объективного воздействия на рецепторы. У меня возникают затруднения, с тем чтобы провести здесь границу объективности и субъективности.
Прошу прощения за предыдущий комментарий. Я ошибся и невнимательно прочитал ваш. В результате я увидел знакомый шаблон и слишком быстро и резко на него среагировал. Это было неправильно.
Вы подняли очень интересный вопрос. И мне действительно не стоит использовать слово «субъективно», если оно обозначает зависимость от человека и состояния его мозга. И не стоит использовать «объективно», как обозначающее независимость от них.
Есть ли слово, которое обозначает именно «независимо от желаний и ожиданий»?
А к чему был этот вопрос?
И, разумеется, вы правы — не все ручки удобны. Об этом будет позже.
А сейчас вы переходите к стандартному спору об определениях.
Повторяю, если вы знаете слово, которое подойдет лучше или можете кратко выразить эту мысль — помогите мне, я вот не могу.
А если нет — то к чему все это?
Второй пункт. Сложность действительно зависит от субъекта. Если у школьника из нашего примера будут связаны руки за спиной — ему действительно будет сложнее переложить кирпич. Но связанные за спиной руки — это весьма объективная причина)
Примерчик: Есть 2 компа.
Я хочу чтобы на каждом из них было 50 нужных мне файлов, размер — одинаков.
На первом уже есть 25 из них.
Комп — это исполнитель, он будет грузить эти файлы. Сложность загрузки каждого файла — одинакова.
Первому компу в 2 раза проще это сделать. Но, у меня не поворачивается язык сказать, что это вызвано субъективным восприятием этого компа, а не объективными причинами.
Я брал определение субъективности из вики, и могу ошибаться. Оно выглядит так: Субъекти́вность — это выражение представлений человека (мыслящего субъекта) об окружающем мире, его точки зрения, чувства, убеждения и желания.
Здесь нет ничего, про объективную информацию, которая имеется о мире. Эти вещи на нее опираются, но они — следствия. Не причина. И могут быть ошибочны.
И да, кажется я понял, почему мы друг-друга недопонимаем. Прочитайте Simple Truth, я думаю так нам будет легче.
Вас же не смущает что: «Простое число — это число, которое не делится на предыдущие простые числа, первое простое число — 2». К тому же, у понятия алгоритм есть сложности с определением. Можете почитать про аппарат рекурсивных функций, но я не стал его пихать в статью.
Я прочел большое количество статей с разными определениями. Где-то авторы наворачивали на элементы «параметры элемента», где-то связи… Их можно выразить через одну математическую абстракцию — множество. Зачем мне связи в определении, если я могу определить их в тот момент, когда захочу, просто воспользовавшись определением функции через теорию множеств?
Мне немного сложно воспринимать то, что вы написали. Вы не могли бы скинуть математическое определение? Cкорее всего окажется, что мы говорим об одном и том же разными словами. Вы прочли спойлер «IT'S MATHEMATICS TIME» в этом разделе?
Я могу сократить статью. Раз в 100. Выразив все мысли математически, на пол листа A4. Но, у людей есть проблемы даже с такой простой вещью, как теорема Байеса. Не всем дано мгновенно привязывать математические формулы к реальному жизненному опыту. Я вот не умею, мне нужно долго работать, чтобы понять, как эти непонятные значки влияют на мою жизнь.
P.S.
У меня сложилось впечатление, что вы пробежали статью за 10 минут, пропустив половину текста. Из-за этого вещи, которые вы привели, «вырвались» из контекста. К сожалению, такой способ взаимодействия со статьей при первом прочтении — не подходит.
Простота для понимания = минимальное количество усилий чтобы понять код.
Простота для расширения = минимальное количество действий чтобы добавить функциональность.
Разве это не цели код ревью? Конечно, еще есть knowledge sharing, проверка на ошибки...
Но вы правы, возможно мне стоит прояснить этот момент. И
У меня есть два предположения:
Если первое — надо понять где я ошибся. Если второе — то, к сожалению, я не могу с этим ничего сделать.
Вы не могли бы раскрыть мысль про вступление? Я не понял, какой момент вам не понравился. Из-за этого я не могу его исправить или сказать, почему он выглядит так.
Тоже заинтересован в приложении.
Это бы дало кучу возможностей, вроде звонков/открытия расширенных версий карточек.
И даже могу его написать, но для этого, думаю, надо сначала договориться с Milfgard