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

Сапер: расчет вероятности, расчет вероятности нахождения мины

05.10.2010, 03:10. Показов 11232. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Помогите пожалуйста составить алгоритм для решения задачи.
Имеется игровое поле для игры в сапер. Оно представленно в виде двумерного массива, где -1 это закрытая клетка, -2 открытая клетка, от -3 до -10 это открытые клетки с числами подсказками (определяются по формуле y=|x|-2).
Необходимо расчитать процент вероятности нахождения мины в каждой закрытой клетке и записать этот результат на ее место (число от 0 до 100).
Изначально известны размеры массива и количество мин. Ну и естественно сам массив (ситуация на игровом поле).
Заранее спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.10.2010, 03:10
Ответы с готовыми решениями:

Теория вероятности. Расчет плотности вероятности суммы двух случайных величин
Добрый вечер уважаемые Форумчане :) Очень нужна помощь с практикумом по теории вероятности. Вот задание: ...

Расчет вероятности
Задача вроде бы легкая, но не получается решить. Нужно просто посчитать вероятность по классической формуле (вероятность события) =...

Расчёт интеграла вероятности
Здравствуйте форумчане, помогите пожалуйста с программой - нужно заменить оператор цикла for на while, и исправить возможные ошибки в...

6
Эксперт С++
 Аватар для Хохол
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
05.10.2010, 09:39
Храните уже поле по-нормальному: от 0 до 8 - количество мин вокруг, -1 - закрытая клетка.
А по теме ничего не скажу - задача, по-моему, чертовски сложная.
0
 Аватар для Norby
66 / 66 / 5
Регистрация: 12.03.2008
Сообщений: 392
05.10.2010, 15:43
А что сложного? Допустим в одной клетке стоит цифра 1, тогда шанс того, что вокруг нее есть мина - 100%, для каждой из 8 клеток -
100% * 1/8 = 12.5%
Ну это если я правильно понял задачу. Если рядом будут 2 клетки по 1 мине, то в клетках на пересечении шанс удваивается. Если в одной 2 мины, в другой 1, тогда шанс будет
100% * 1/8 + 100% * 2/8 = 37.5%
и т.д.
0
0 / 0 / 0
Регистрация: 02.03.2010
Сообщений: 7
05.10.2010, 16:26  [ТС]
Цитата Сообщение от Хохол Посмотреть сообщение
Храните уже поле по-нормальному: от 0 до 8 - количество мин вокруг, -1 - закрытая клетка.
А по теме ничего не скажу - задача, по-моему, чертовски сложная.
Числа от 0 и выше (до 100) надо использовать для хранения процента вероятности.
Цитата Сообщение от Norby Посмотреть сообщение
А что сложного? Допустим в одной клетке стоит цифра 1, тогда шанс того, что вокруг нее есть мина - 100%, для каждой из 8 клеток -
100% * 1/8 = 12.5%
Ну это если я правильно понял задачу. Если рядом будут 2 клетки по 1 мине, то в клетках на пересечении шанс удваивается. Если в одной 2 мины, в другой 1, тогда шанс будет
100% * 1/8 + 100% * 2/8 = 37.5%
и т.д.
А если такой вариан?
0
Эксперт С++
 Аватар для Хохол
476 / 444 / 34
Регистрация: 20.11.2009
Сообщений: 1,293
05.10.2010, 16:29
Цитата Сообщение от Explode Посмотреть сообщение
Числа от 0 и выше (до 100) надо использовать для хранения процента вероятности.
Для вероятности наиболее естественным будет использование обычного вещественного типа. Вероятность по определению - число от 0 до 1, а никакие не проценты.

Добавлено через 1 минуту
Просто записывайте результат в другой массив.
0
 Аватар для Norby
66 / 66 / 5
Регистрация: 12.03.2008
Сообщений: 392
05.10.2010, 17:48
Цитата Сообщение от Хохол Посмотреть сообщение
Вероятность по определению - число от 0 до 1, а никакие не проценты.
Согласен на все 100%(простите за каламбур ), однако для графического представления в реальной игре эстетичнее будет все-таки использовать масштабирование 0-100%

Добавлено через 5 минут
Цитата Сообщение от Explode Посмотреть сообщение
А если такой вариан?
Легко. Просто учитываем все клетки, которые влияют на данные. Естественно неоткрытые неизвестно как влияют, так что можно использовать для них вероятность 12,5%(ведь там или мина или цифра или пусто, но брать стоит вероятность того, что там цифра 1, т.к. если взять максимальную, получится, что везде мины или же взять 50% для каждой неоткрытой клетки, но не больше 100% в сумме). А можно и вовсе не учитывать еще не открытые клетки.
0
0 / 0 / 0
Регистрация: 02.03.2010
Сообщений: 7
05.10.2010, 20:16  [ТС]
Вроде разобрался как расчитывать вероятность для некоторых клеток (см.рисунок).

Для тех клеток, что обведены синим (которые не "контактируют" с числами подсказками), действует формула:

P = (L-M)*(100/(K-M))

Где:
L - общее кол-во мин на поле;
M - кол-во ячеек, в которых точно есть мины;
K - кол-во закрытых ячеек.

Осталось научиться определять вероятность для тех ячеек, что обведены красным (которые находятся рядом с числами-подсказками).

P.S. Вот программа по теме. Надо что то наподобие такого же расчета (настройки - игра в другом приложении).
http://www.sharemania.ru/0102526
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.10.2010, 20:16
Помогаю со студенческими работами здесь

Расчет плотности вероятности функции
Есть функция y(n). Просто реализация чисел, например double y = new double{1.1, 3.2, 2.5, 20, 30, 25}. Нужно получить такую функцию, чтобы...

Расчёт вероятности отказа в модели
группа операторов численностью из 10 обслуживает сначало 420 вызовов потом 450, время поступления вызовов и время обслуживания...

Приблизительный расчет вероятности связанных событий
Здравствуйте! Есть следующая задача. Понятно, что строго математически решения нет, но, возможно, подскажете какие-либо идеи для...

Расчёт надёжности и вероятности отказа схемы
Надежность схемы – вероятность ее работы за время t. p - надежность элемента; q - вероятность отказа элемента. Элементы выходят из...

Расчет вероятности при отклонении от среднестатистического
Вобщем, например, есть событие "А". На протяжении статистики 2000-2011 годов среднестатистическое этого события 58,33, стандартное...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru