Форум программистов, компьютерный форум, киберфорум
Наши страницы
Алгоритмы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
Explode
0 / 0 / 0
Регистрация: 02.03.2010
Сообщений: 7
1

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

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

Доброго времени суток!
Помогите пожалуйста составить алгоритм для решения задачи.
Имеется игровое поле для игры в сапер. Оно представленно в виде двумерного массива, где -1 это закрытая клетка, -2 открытая клетка, от -3 до -10 это открытые клетки с числами подсказками (определяются по формуле y=|x|-2).
Необходимо расчитать процент вероятности нахождения мины в каждой закрытой клетке и записать этот результат на ее место (число от 0 до 100).
Изначально известны размеры массива и количество мин. Ну и естественно сам массив (ситуация на игровом поле).
Заранее спасибо!
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.10.2010, 03:10
Ответы с готовыми решениями:

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

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

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

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

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

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

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

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

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

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

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

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

P.S. Вот программа по теме. Надо что то наподобие такого же расчета (настройки - игра в другом приложении).
http://www.sharemania.ru/0102526
0
05.10.2010, 20:16
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2010, 20:16

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

Расчет вероятности битовой ошибки при разных ОСШ
кто может подсказать как реализовать это в labview?

Расчет вероятности победы при возможном ходе в игре
Здравствуйте. Есть карточная игра "21". Игра происходит на стандартную малую колоду (36 карт)....


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.