Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для VladSharikov
25 / 25 / 7
Регистрация: 02.12.2010
Сообщений: 824

Выбор чего либо, основываясь на вероятности

06.04.2014, 21:32. Показов 856. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет

Допустим я стою у камня на дороге. На нем написано, что-то про смерть, богатства, коня и т.п.

Вот, к примеру, беру с потолка. Вероятность налево пойти 0.8, направо 0.05, прямо 0.15. Куда я пойду? Налево не предлагать. Сразу привожу второй пример. Есть 4 дороги. Вероятности равны. Куда идти?

Вернемся к первому примеру. Как мне понять куда идти, причем так, чтобы налево я ходил налево все таки чаще в соответствии с вероятностями?

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

Как эту задачу решить математически? А в итоге надо все закодить

Возникает идея с интервалом. Разделить отрезок от 0 до 1, в первом примере на 3 отрезка, во втором на 4. Для первого примера отрезки будут: 0-0.8, 0.8-0.85, 0.85-1, для второго: 0-0.25,0.25-0.5,0.5-0.75,0.75-1. Теперь генерируем число честным генератором от 0 до 1, смотрим в какой интервал попали, то и выберем.

Я прав? Или нет? Есть какие-то еще варианты? Правильные, например?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.04.2014, 21:32
Ответы с готовыми решениями:

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

Как сделать какое-либо действие сразу после запуска программы, без нажатия чего-либо
Как сделать какое-либо действие сразу после запуска программы, без нажатия чего-либо?

Как основываясь на доступных данных сделать выбор нереференсной модели GTX1070 ?
Доброе время суток! Начали появляться в продаже нереференсные модели GTX1070, тестов еще нет, а купить хочется. Поэтому такой вопрос, как...

7
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
06.04.2014, 21:58
Не знаю есть ли варианты лучше, но я бы так и сделал.
0
 Аватар для VladSharikov
25 / 25 / 7
Регистрация: 02.12.2010
Сообщений: 824
06.04.2014, 22:28  [ТС]
wingblack, то есть я не велосипед изобрел, а так бы по хорошему и надо сделать?

Хорошо. А реализация как должна примерно выглядеть? Посчитать кол-во интервалов, создать кол-во интервалов + 1 элементов массива, первый 0, последний 1 и заполнить их в цикле? К 0 прибавить первую вероятность, к получившемуся вторую и т.п. Так?
0
Эксперт функциональных языков программированияЭксперт по математике/физике
4313 / 2105 / 431
Регистрация: 19.07.2009
Сообщений: 3,204
Записей в блоге: 24
06.04.2014, 22:51
Я не понял, что Вы хотели спросить, но на всякий случай приведу одно рассуждение, которое некогда меня до глубины поразило.

Условие игры: человек должен сказать «больше» или «меньше» и бросить кубик, если названо «меньше» и выпало число {1,2} или названо «больше» и выпало {3,4,5,6}, то человек получает рубль, иначе ничего. Максимизировать вероятность выигрыша. Иначе говоря, максимизировать средний выигрыш по множеству случаев (матожидание).

Рассмотрим две стратегии:
1) называем наугад «больше» или «меньше». Поскольку вероятность {3,4,5,6} больше {1,2} в два раза, логично называть «больше» в два раза чаще. Тогда средний выигрыш будет 1/3 * 1/3 + 2/3 * 2/3 = 5/9.
2) называем всегда «больше», как наиболее вероятный исход. Тогда средний выигрыш будет 2/3 = 6/9.
Так-то ))

Если же Ваш вопрос заключался в том, как сгенерировать дискретную случайную величину с заданным распределением, то одно из возможных решений (с отрезками) Вы правильно описали.
0
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
06.04.2014, 22:51
Цитата Сообщение от VladSharikov Посмотреть сообщение
К 0 прибавить первую вероятность, к получившемуся вторую и т.п
Да. Можно выкинуть ноль и искать индекс такого элемента массива, который первый будет меньше чем выпавшее произвольное число.
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
06.04.2014, 23:10
VladSharikov, не знаю насчет "правильности",но вариант с интервалом реализовать будет проще,чем искать хитрый способ.
0
1968 / 824 / 115
Регистрация: 01.10.2012
Сообщений: 4,859
Записей в блоге: 2
07.04.2014, 07:03
Цитата Сообщение от VladSharikov Посмотреть сообщение
то есть я не велосипед изобрел, а так бы по хорошему и надо сделать?
Ну а почему "велосипед" - значит сразу "плохо"? Да, так все делают, это нормально, а сами догадались = хорошо.

Цитата Сообщение от VladSharikov Посмотреть сообщение
Хорошо. А реализация как должна примерно выглядеть? Посчитать кол-во интервалов, создать кол-во интервалов + 1 элементов массива, первый 0, последний 1 и заполнить их в цикле? К 0 прибавить первую вероятность, к получившемуся вторую и т.п. Так?
Да, и если интервалов много то ищут "куда попало число" не перебором, а ф-цией поиска (напр lower_bound)

Цитата Сообщение от Mysterious Light Посмотреть сообщение
то одно из возможных решений (с отрезками)
А какие есть еще? (мне ничего не приходит в голову). "Огласите весь список"
0
294 / 265 / 48
Регистрация: 09.04.2013
Сообщений: 1,038
07.04.2014, 08:45
Цитата Сообщение от Igor3D Посмотреть сообщение
А какие есть еще? (мне ничего не приходит в голову). "Огласите весь список"
Бинарное дерево поиска например.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.04.2014, 08:45
Помогаю со студенческими работами здесь

Касание чего-либо
Вообщем есть PictureBox - picture_char и есть label - label_coll; Если picture_char касается label_coll, то он отходит на 10 шагов назад,...

Реализовать перетаскивание чего либо
как можно реализовать перетаскивание чего либо с панели (например) на форму? т.е. как в норм приложениях бывает на панельке лежат какие то...

Как написать чего-либо на фоне?
Я как новичек, читающий книгу не могу написать на фоне. Что я написал не так? Заранее спасибо. <STYLE> bg...

Выполнение чего-либо без call
Только начал изучать ассемблер, поэтому такие глупые вопросы. Собственно, я думал, что можно выполнить дейсвия только через call (invoke не...

Бронирование чего либо , как реализовать ?
Всем привет! Пишу клиент -серверное приложение (библиотека) , надо реализовать бронирование книг , как это вообще работает ? Спасибо!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru