Как стать автором
Обновить
31
Карма
0
Рейтинг
Тельнов Виктор @victor79

программист

  • Подписчики 22
  • Подписки 1

Новелла про одну функцию. Основано на реальных событиях

Программирование *Читальный зал

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

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

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

Читать далее
Всего голосов 36: ↑31 и ↓5 +26
Просмотры 8.9K
Комментарии 34

Вероятность выигрыша в покере

Математика *Статистика в IT

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

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

Сразу оговорюсь, что я в покер не играю, и знаю его хуже чем те, кто играет свои первые партии в жизни. Но может это не так уж и важно?

Читать далее
Всего голосов 26: ↑24 и ↓2 +22
Просмотры 26K
Комментарии 30

Что такое вероятность и как ее посчитать

Математика *
Пусть будет некий абстрактный эксперимент в процессе которого может происходить некое событие. Этот эксперимент провели пять раз, и в четырех из них происходило то самое событие. Какие выводы можно сделать из этих 4/5?



Есть формула Бернулли, которая дает ответ, с какой вероятностью происходит 4 из 5 при известной исходной вероятности. Но она не дает ответ, какая была исходная вероятность, если событий получилось 4 из 5. Оставим пока в стороне формулу Бернулли.

Сделаем маленькую простенькую программку, симулирующую процессы вероятностей для такого случая, и на основе результата вычислений построим график.
Читать дальше →
Всего голосов 24: ↑17 и ↓7 +10
Просмотры 15K
Комментарии 29

Снова прогнозирование, часть 2

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

А именно цикличность и усложнение варианта с подобием отрезков.


Читать дальше →
Всего голосов 14: ↑14 и ↓0 +14
Просмотры 2.7K
Комментарии 2

Снова прогнозирование, часть 1

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


Читать дальше →
Всего голосов 13: ↑11 и ↓2 +9
Просмотры 4.7K
Комментарии 2

Прогнозирование

Искусственный интеллект Мозг
Recovery mode
Я уже писал, зачем нужно такое прогнозирование — Создание искусственного интеллекта.
Здесь же я буду описывать только алгоритм прогнозирования, без лишней лирики.

Рассматривать буду прогнозирование последовательности байтов или же текста UTF-8. Прогнозирование последовательности дробных чисел — графиков — во многом подобно, только нужно значения сравнивать не на равенство, а на принадлежность окрестностям.

Пусть будет поток байтов (или скажем текст UTF-8) — входящие прогнозируемые данные. Поступающие данные сохраняем во множество сохраненной истории. Каждое очередное поступающее значение учитываем в структуре для накопления статистики:
struct Stat {
	uint value; // прогнозируемое значение
	uint count; // количество прошедших таких значений

	// функция index используется шаблонным классом Index - ключ для rb-дерева
	static uint index(const Stat& s) { return s.value; }

	Ptrn* owner;

	double probability() const { return (double)count/(double)owner->sum_count_of_stat; }
};

// шаблонный класс Index это rb-дерево,
//  первый параметр шаблона — тип значения по которому происходит сортировка,
//  второй, это класс сохраняемых значений в узлах. Этот класс должен содержать
//  функцию index.

struct Ptrn {
	// узел, подсчитывающий, какое распределение вероятностей будет
	// следовать за значением value
	uint value;

	Index<uint,Stat> index_of_stat; // распределение вероятностей
	uint sum_count_of_stat;
	
	// путем добавления к текущему value еще влево
	//   будут образовываться паттерны
	Index<uint,Ptrn> index_of_prev;
	static uint index(const Ptrn& s) { return s.value; }

	Ptrn* owner; // owner->index_of_prev->find(value) == this,
	                     // для root этот owner равен nullptr
};

Ptrn root;

Читать дальше →
Всего голосов 6: ↑5 и ↓1 +4
Просмотры 4.7K
Комментарии 14

Создание искусственного интеллекта

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

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

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

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

В каком виде в компьютер попадет наша задача — через клавиатуру, через микрофон, или с датчиков вживленных в мозг — это не важно, это дело вторичное. Если мы сможем компьютер заставить выполнять желания написанные текстом, то после мы можем поставить ему задачу, что бы он сделал программу, которая так же выполняет желания, но через микрофон. Анализ изображений так же лишний.
Читать дальше →
Всего голосов 23: ↑13 и ↓10 +3
Просмотры 72K
Комментарии 34

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность