财神麻将判胡。。。如何提高效率

txohyeah 2011-08-04 03:20:54
问下大家。。。财神麻将,一副牌最多有3个财神(就是什么牌都可以用财神来换的那种),没有财神的牌可以用普通的递归来实现,有一个财神的话用这个财神去一个一个替换其他的牌(一共38种情况以内),但是到有2张财神的话排列组合就有不少了,3张的话。。感觉已经多的很了。。有没有简单一点的算法。。让计算机效率更高一点的
...全文
211 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
txohyeah 2011-08-05
  • 打赏
  • 举报
回复
这个提高时间效率的代码写出来了~~我放上来给有需要的参考下

#include <iostream>
using namespace std;
int Hu(int PAI[38],int n);
int Remain(int PAI[38]);
int main()
{
int PAI[38]={0};
int i,a,n;
for(int count=0;count<14;count++)
{
cin>>i;
PAI[i]++;
}
cout<<"Please input the god of money:";
cin>>a;
n=PAI[a];
PAI[a] = 0;
if(Hu(PAI,n))
cout<<"我胡啦"<<'\n';
else
cout<<"胡不成"<<'\n';
return 1;
}

int Hu(int PAI[38],int n)
{
static int JIANG = 0;
if(!Remain(PAI)) return 1;
for(int i=0;!PAI[i]&&i<38;i++)
{}

if(PAI[i] >= 3)
{
if(n!=0)
{
PAI[i] -= 2; n--;
if(Hu(PAI,n)) return 1;
PAI[i] += 2; n++;
}
else
{
PAI[i] -= 3;
if(Hu(PAI,n)) return 1;
PAI[i] += 3;
}
}

if(!JIANG && PAI[i] >= 2)
{
if(n!=0)
{
JIANG = 1;
PAI[i] -= 1; n--;
if(Hu(PAI,n)) return 1;
PAI[i] += 1; n++;
JIANG = 0;
}
else
{
JIANG = 1;
PAI[i] -= 2;
if(Hu(PAI,n)) return 1;
PAI[i] += 2;
JIANG = 0;
}
}
if(i > 30) return 0;


if(i%10 != 8 && i%10 != 9 && PAI[i+1] && PAI[i+2])
{
if(n!=0)
{
PAI[i]--;
PAI[i+1]--; n--;
if(Hu(PAI,n)) return 1;
PAI[i]++;
PAI[i+1]++; n++;
}
else
{
PAI[i]--;
PAI[i+1]--;
PAI[i+2]--;
if(Hu(PAI,n)) return 1;
PAI[i]++;
PAI[i+1]++;
PAI[i+2]++;
}
}
return 0;
}
int Remain(int PAI[38])
{
int sum = 0;
for(int i=1;i<38;i++)
{ sum += PAI[i];}
return sum;
}
txohyeah 2011-08-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 criedshy 的回复:]
武汉麻将吗?
[/Quote]
杭州麻将。。不过胡牌的话只要求平胡就可以了~
criedshy 2011-08-04
  • 打赏
  • 举报
回复
武汉麻将吗?
txohyeah 2011-08-04
  • 打赏
  • 举报
回复
哦~好吧,谢谢~~哈
lighting_pig 2011-08-04
  • 打赏
  • 举报
回复
就算用你的算法,0.1秒内计算完成问题应该不大吧
lighting_pig 2011-08-04
  • 打赏
  • 举报
回复
现在的电脑速度都挺快的,你这个算法应该也不会太慢吧
《通讯财神》作为国内第一套面向通讯销售行业财务及管理方面的专业软件,完全适合通讯配件行业零售、批发及各级总、分店连锁管理。该管理软件自2000年6月推出以来,已相继被国内80多家从事通讯配件销售行业的客户成功使用。 V2.98版采用完全导航式的图形界面,一看就会操作。同时修正和完善了原V2.01中的一些bug,,使您操作起来更加得心应手。 《通讯财神》具有如下六大特点: 1、 功能强大:具有通讯销售行业的所有基本功能。 2、 自动生号:系统可自动生成BP机寻呼号、地址码、手机号、磁卡号, 免去手工操作的失误与繁琐,提高了工作效率及数据的准确性。 3、 查找方便:系统具有模糊和复合查找功能,可十分方便快捷搜索数据。 4、 串号管理:系统可方便地进行建立手机串号管理,免去了人工操作的失误。 5、 操作简便:系统具有十分方便的查询统计功能,支持鼠标右键功能及配合键盘操作。 6、 系统具有多种数据选取方式。 《通讯财神》V2.01自推出以来,得到全国各地众多网友及用户的支持与鼓励。使我信心培增。我要感谢CSDN的网友邢治元先生,是他给了我极大的鼓励。我更要感谢我的好朋友南京的杨轶先生,一直在支持和鼓励我完善系统。并抽出宝贵的时间给我做了一个主页。我要感谢正在使用《通讯财神》的许许多多的用户,正是因为有了您们的支持和来信,才使我抽出时间进一步修改和完善了该系统。  如果您有问题请发Email或来信,我将努力解决。  已经注册使用《通讯财神》的用户将免费升级最新版本。    信诚软件工作室面向全国诚征《通讯财神》软件营销伙伴。优惠多多,赶快联系啊。 。

662

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧