看得数猜数字的游戏公式 求一猜数字游戏的思路??

作者&投稿:敞发 (若有异议请与网页底部的电邮联系)
答案如下~!
说话依次编号为S1,P1,S2。

设这两个数为x,y,和为s,积为p。

由S1,P不知道这两个数,所以s不可能是两个质数相加得来的,而且s<=41,因为如果s>41,那么P拿到41×(s-41)必定可以猜出s了(关于这一点,参考老马的证明,这一点很巧妙,可以省不少事情)。所以和s为{11,17,23,27,29,35,37,41}之一,设这个集合为A。

1).假设和是11。

11=2+9=3+8=4+7=5+6,如果P拿到18,18=3×6=2×9,只有2+9落在集合A中,所以P可以说出P1,但是这时候S能不能说出S2呢?我们来看,如果P拿到24,24=6×4=3×8=2×12,P同样可以说P1,因为至少有两种情况P都可以说出P1,所以A就无法断言S2,所以和不是11。

2).假设和是17。

17=2+15=3+14=4+13=5+12=6+11=7+10=8+9,

很明显,由于P拿到4×13可以断言P1,而其他情况,P都无法断言P1,所以和是17。

3).假设和是23。

23=2+21=3+20=4+19=5+18=6+17=7+16=8+15=9+14=10+13=11+12,

咱们先考虑含有2的n次幂或者含有大质数的那些组,如果P拿到4×19或7×16都可以断言P1,所以和不是23。

4).假设和是27。如果P拿到8×19或4×23都可以断言P1,所以和不是27。

5).假设和是29。如果P拿到13×16或7×22都可以断言P1,所以和不是29。

6).假设和是35。如果P拿到16×19或4×31都可以断言P1,所以和不是35。

7).假设和是37。如果P拿到8×29或11×26都可以断言P1,所以和不是37。

8).假设和是41。如果B拿到4×37或8×33,都可以断言P1,所以和不是41。

综上所述:这两个数是4和13。

猜数字的游戏规则~

先解释标准规则,再介绍几种变体。通常由两个人玩,一方出数字,一方猜。出数字的人要想好一个没有重复数字的4个数,不能让猜的人知道。猜的人就可以开始猜。每猜一个数字,出数者就要根据这个数字给出几A几B,其中A前面的数字表示位置正确的数的个数,而B前的数字表示数字正确而位置不对的数的个数。如正确答案为 5234,而猜的人猜 5346,则是 1A2B,其中有一个5的位置对了,记为1A,而3和4这两个数字对了,而位置没对,因此记为 2B,合起来就是 1A2B。接着猜的人再根据出题者的几A几B继续猜,直到猜中(即 4A0B)为止。猜数字游戏通常设有猜测次数的上限。根据计算机测算,如果采用严谨的猜测策略,任何数字最多7次就可猜出(即达到 4A0B)。值得注意的是,在有些地方把次数上限定义为最多几次猜测以后就可以肯定数字是几,但这时或还需要再猜一次才能得到 4A0B 的结果。标准的猜数字游戏由10个数码(0-9)和4个数位组成。可以通过变化数码或数位来丰富游戏。例如,可以使用9个数码玩4个数位的游戏。猜数字游戏的一种变体允许重复的数码。这种规则的游戏被称为 Mastermind 。其规则大致为:除了上面的规则外,如果有出现重复的数字,则重复的数字每个也只能算一次,且以最优的结果为准。例如,如正确答案为5543,猜的人猜5255,则在这里不能认为猜测的第一个5对正确答案第二个,根据最优结果为准的原理和每个数字只能有一次的规则,两个比较后应该为1A1B,第一个5位子正确,记为1A;猜测数字中的第三个5或第四个5和答案的第二个5匹配,只能记为1B。当然,如果有猜5267中的第一个5不能与答案中的第二个5匹配,因此只能记作1A0B。

我知道你的痛苦,我是过来人,那给你参考参考我之前做的代码吧:#include
#include
#include
#include /*getch()等函数*/
#define TIME 3
#define N 3
int ws;
int num[N];
int initmsg()
{
int a;
printf(" O(∩_∩)O~
");
printf(" 数字记忆小游戏
");
printf("★★★★★★★★★★★★★★★★★★★
");
printf("★ 制作者: ★
");
printf("★ 1: 开始 ★
");
printf("★ 2: 游戏说明 ★
");
printf("★ 3: 退出 ★
" );
printf("★★★★★★★★★★★★★★★★★★★
");
printf(" O(∩_∩)O~
");
printf("
你的选择:");
scanf("%d",&a);
return a;
}
void gamemsg()
{
printf("1.输入要记忆的数字位数
");
printf("2.输入完成后会出现3个相应位数的数字
");
printf("3.这3个数字再3秒钟后消失
");
printf("4.输入文字和符号时提示程序错误
");
printf("5.输入刚才出现过的3个数字
");
printf("6.3次输入的机会数字输入正确则继续游戏,3次机会全错 则提示游戏是否继续
");
printf("7.输入Q或者q时 程序结束
");
printf("按任一建继续");
getch();/*直接从键盘获取键值*/}
void clear()/*当没有换行时等待,输入换行时结束此函数的执行,是一个在时间上的缓冲函数*/
{
while(getchar() != '
');/*当你遇到回车符后退出while循环,否则就无限循环下去*/
}
int weishu()
{
int mark;
char c;
while(1)
{
regetmark: mark= initmsg();
switch(mark)/*switch语句又称为开关语句,从多种供选择的情况中选择满足条件的一种情况执行的简便而又直观的多分支结构*/
{
case 1: goto start;
case 2: gamemsg(); system("cls");;goto regetmark;
case 3: exit(0);
}
start:printf("请输入位数(结束Q/q):");
if(scanf("%d", &ws))
{
if(ws >= 1 && ws <= 5)
break;/*是退出小循环*/
}
else if((c = getchar()) == 'q' || c == 'Q')
return 0;
else
printf("输入错误!请重试.
");
clear();
}
clear();
return 1;
}
int play()
{
int i, a, b, n;
int in[N];
switch(ws)
{
case 1:a = 0, b = 10;break;
case 2:a = 10, b = 90;break;
case 3:a = 100, b =900;break;
case 4:a = 1000, b = 9000;break;
case 5:a = 10000, b = 90000;break;
}
n = 0;
for(i = 0; i < N; ++i)
n += printf("%d ", num[i] = rand()%b+a);
clock_t now = clock();
while((clock() - now) / CLOCKS_PER_SEC < TIME);
i = n;
while(i--)
putchar('\b');
printf("%*c", n, ' ');
i = n;
while(i--)
putchar('\b');
b = 3;
while(b)
{
printf("请输入:");
for(i = 0; i < N && scanf("%d", &in[i]); ++i);
if(i < N)
{
printf("输入有误!请重试.
");
clear();
continue;
}
if(b > 0)
{
for(i = 0; i < N; ++i)
if(in[i] != num[i])
{
if(b > 1)
printf("输入错误, 你还有%d次机会:
", b-1);
break;
}
if(i == N)
return 1;
}
b--;
}
return 0;
}
int main()
{
srand(time(0));
while(weishu())
{
if(!play())
{
clear();
printf("3次机会已用完, 是否重来?(y继续):");
if(getchar() != 'y') break;
else
clear();
}
else
printf("恭喜你!记忆正确.
");
}
printf("Bye!");
start:return 0;
}

数独的公式是什么?
答:数独的公式是45法则,数独中经常用到技巧,不难理解,数独中每行每列每个3X3都要有1~9互不重复,这就意味着每行列宫数字之和都是45,1+2+3+4+5+6+7+8+9=45。由于每一列、行、九宫格中只能填1-9,所以和必定是45。运用这个法则,可以帮助解到不少题目。例子,第一个数是数字,第二个...

求猜数字游戏的策略
答:第三步,猜题者这一步,稍微聪明点,从4组数中分别去4个数,最起码可以确定,3个数字.但是我们想,作为出题人,在6,7,8,9中,如果是一个数一个数猜,他肯定,会将最后一次猜的设为正确的以增加你猜题次数,也就是说,即使你从现在起,4步后,将6,7,8,9中正确数字的位置确定下来,也需要4步才能,将...

1到100得数字游戏怎么玩
答:猜数字游戏通常设有猜测次数的上限。根据计算机测算,如果采用严谨的猜测策略,任何数字最多7次就可猜出(即达到 4A0B)。值得注意的是,在有些地方把次数上限定义为最多几次猜测以后就可以肯定数字是几,但这时或还需要再猜一次才能得到 4A0B 的结果。标准的猜数字游戏由10个数码(0-9)和4个数位...

猜数字游戏攻略
答:游戏攻略这是一款猜数字游戏,玩家需要根据提示猜出正确的数字。下面是一些游戏攻略,希望对玩家有所帮助。数字规律根据题目中的提示,可以发现数字规律。例如,2个○,1个△,就意味着有两个数字既猜对了位置,又猜对了数字,还有一个数字猜对了位置但是数字不对。这样的提示可以帮助玩家更快地猜出正确的数字。

猜数字有什么技巧
答:猜数字游戏是一种常见的智力游戏,玩家需要猜测一个随机生成的数字。以下是一些猜数字游戏的技巧:观察数字的分布:在猜测数字之前,观察数字的分布可以帮助玩家更好地猜测。例如,如果数字是1-10之间的随机数,那么玩家可以猜测数字的范围是1-10。利用排除法:玩家可以使用排除法来缩小猜测的范围。例如,...

求几个猜数字的心理魔术……
答:2.在桌子上放一张纸,让观众在心里想一个1~9之间的数字,你写下来放在兜里,让观众说出来,在把纸拿出来,正好是刚刚观众想的数.解释:先在桌子上放一根细小的铅笔芯,假装在写,其实没写,当观众说出来的时候,你把笔心放到兜里,很快的写出那个数字,再拿出来,就成了....

做游戏,猜数字:让对方人像一个数,让他做如下运算:1.乘以五 2.再加上...
答:解:设猜的数为x [(x×5+6)×4+9]×5 =[20x+24+9]×5 =(20x+33)×5 =100x+165 根据流程得出的数与x关系如上,即把得数减去165,再除以100,即为原数

猜数字游戏
答:第三步,猜题者这一步,稍微聪明点,从4组数中分别去4个数,最起码可以确定,3个数字.但是我们想,作为出题人,在6,7,8,9中,如果是一个数一个数猜,他肯定,会将最后一次猜的设为正确的以增加你猜题次数,也就是说,即使你从现在起,4步后,将6,7,8,9中正确数字的位置确定下来,也需要4步才能,将...

求猜数字的技巧
答:先猜1234,5678。基本上可以排除两个数 然后再根据前面的情况具体分析 例:5029 1234 1B 5678 1A 就是说0和9都有 1234有一个且位置不对 5678有一个且位置是对的 再1234选一个5678选一个09都用上 3690 2B 说明3和6都不对且0和9位置不对 依次排除,运气好3.4次就把数字找到了 以后就是排...

猜数字游戏规则
答:猜数字游戏规则 猜数字游戏通常是一位玩家选择一个数字,其他玩家在一定范围内猜测这个数字。规则可以根据不同的变种有所不同,但基本的核心机制是猜测和验证。猜数字游戏是一种简单而有趣的游戏,它可以在任何有两个人或更多人参与的场合进行。以下是游戏的基本规则和一个常见的玩法变种:基本规则:1....