相关疑难解决方法(0)

用于在手中查找街道和同类的算法

这实际上是一个基于麻将的问题,但基于Romme甚至基于扑克的背景也很容易理解.

在Mahjong中,14个瓷砖(瓷砖就像扑克中的卡片)被安排成4套和一对.街道("123")总是使用3个瓷砖,而不是更多而不是更少.一组相同类型("111")也包含3个瓷砖.这导致3*4 + 2 = 14个瓦片的总和.

有一些例外,如Kan或十三个孤儿,这里没有相关性.颜色和值范围(1-9)对于算法也不重要.

我正在尝试确定手是否可以按上述方式排列.出于某些原因,它不仅应该能够处理14个而且可以处理任意数量的瓷砖.(下一步是找到需要交换多少个牌才能完成一手牌.)

例子:

11122233344455 - 足够容易,4套和一对.
12345555678999- 123,456,789,555,99
11223378888999- 123,123,789,888,99
11223344556789- 不是有效的手

我目前尚未实现的想法是这样的:对于每个瓷砖,尝试制作a)街道b)一组c)一对.如果没有工作(或者将有> 1对),请返回上一次迭代并尝试下一个选项,或者,如果这是最高级别,则失败.否则,从剩余的切片列表中删除使用过的切片,然后继续下一次迭代.

我相信这种方法有效并且速度也相当快(性能是一个"不错的奖励"),但我对你的看法很感兴趣.你能想到其他解决方案吗?这个或类似的东西是否已存在?

(不是作业,我正在学习麻将.)

algorithm poker mahjong

12
推荐指数
1
解决办法
1424
查看次数

标签 统计

algorithm ×1

mahjong ×1

poker ×1