谁有掷塞子的算法!!!

santld 2004-09-20 09:38:25
求助:各位大哥谁能给我提供一些掷塞子的算法的资料啊,最好能通过算法限制一些一些点数出现的概率,谢谢哦!!!!
...全文
190 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lifan5748 2004-09-21
  • 打赏
  • 举报
回复
我这里有个限制出现概率的算法,不知可行否?
设骰子的值为value,则value=random(5)+1。如果想限制某点出现的概率,比如想限制4,可以在最后加上这样一句 if(rand()/n==0&&value==4) value=random(5)+1; n的取值视你想限制的概率而定。
lifan5748 2004-09-21
  • 打赏
  • 举报
回复
楼主何时结帐
  • 打赏
  • 举报
回复
伪随机数的研讨有很多现在并没有一个非常完善的东东
如果觉得rand这个本身自带的函数不好的,可以在GOOGLE上搜索一个,如果你学过离散数学的话,还是能看懂写的意思的
星羽 2004-09-20
  • 打赏
  • 举报
回复
你还想怎么样的
星羽 2004-09-20
  • 打赏
  • 举报
回复
rand()%6+1
tangcx 2004-09-20
  • 打赏
  • 举报
回复
#include<iostream>
#include<stdlib.h>
#include<ctime>
using namespace std;

int result(void);
int main()
{enum status{WIN,LOSS,CONTINUE};
status play=CONTINUE;
int sum,times=1,lasttime;
srand(time(NULL));
sum=result();
while(play==CONTINUE)
{ if(times==1){
if((sum==7)||(sum==11))
play=WIN;
else if((sum==2)||(sum==3)||(sum==12))
play=LOSS;
else {play=CONTINUE;times+=1;lasttime=sum;}
}
else{if(lasttime==sum)
play=WIN;
else if(sum==7)
play=LOSS;
else
{ lasttime=sum;play=CONTINUE;}
}
if(play==CONTINUE)
sum=result();
}
if(play==WIN)
cout<<"player wins"<<endl;
else
cout<<"player loses"<<endl;
return 0;}

int result(void)
{
int die,die2,worksum;
die=(1+rand()%6);
die2=(1+rand()%6);
worksum=die+die2;
cout<<"played rolled "<<die<<"+"
<<die2<<"="<<worksum<<"\n";

return worksum;
}
慢慢看吧~~~~~~~~~~~~~~~~~~
zhangfjj 2004-09-20
  • 打赏
  • 举报
回复
一个骰子的点数是:1--6
二个骰子的点数是:2--12
....
就是用随机函数
pacman2000 2004-09-20
  • 打赏
  • 举报
回复
多个骰子就多次调用。
pacman2000 2004-09-20
  • 打赏
  • 举报
回复
rand()%6+1
fanbest 2004-09-20
  • 打赏
  • 举报
回复
掷筛子么?
这不是很简单么
danielpan 2004-09-20
  • 打赏
  • 举报
回复
随机函数不行吗?
你要限制点数的概率,自己稍微改一下就行了.

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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