㈠ 猜數字小游戲
{
int Number = 2;
srand((unsigned)time(NULL));
int magic;
int guess;
int counter;
magic=rand()%100+1;
counter=0;
do{
printf("please guesss a magic number(0到100之間):");
scanf("%d",&guess);
counter++;
if (guess>magic)
printf("wrong!too high!你怎麼這么苯,豬腦啊\n");
else if(guess<magic)
printf("wrong!too low!我對你失去信心了\n");
if(counter>=Number)break;
}
while(guess!=magic);
if (counter>=Number) printf("失敗!超過最多猜題次數了!\n");
else
{
printf("right!終於猜對了\n");
printf("\t* *\n");
printf("\t *\n");
printf("counter=%d\n",counter);
}
}
㈡ 猜數字游戲的最佳猜法
看他怎麼的猜數判斷是什麼,只給大小,那麼2分法最好,如果是其他的提示判斷的話,再考慮。我才幫別人做了一個猜數游戲,有興趣聯系我。
㈢ 一個猜數字的游戲
根據源第一列推斷:
立<3 (1) 出現4次
冬>7 (8,9) 出現2次
春<4 (2,3) 出現3次
大<4 (2,3) 出現2次
且均不為零.
另三個數為(4,5,6,7)中位數:
夏 略小 出現2次
秋 出現3次
分 出現2次
最後定」寒」和」暑」
經多次排列,得出如下算式:
1214
+1817
+2635
+3076
------
=8742
㈣ 求猜數字游戲的答案
import javax.swing.JOptionPane;
public class Text {
public static void main(String[] args) {
int number=(int)(Math.random()*100);
String num;
num=JOptionPane.showInputDialog(null," 請猜計算機輸出的數:(0~100)");
int i=Integer.parseInt(num);
while(i!=number)
{
if(i>number)
JOptionPane.showMessageDialog(null,"輸入的數值大了");
else
{
JOptionPane.showMessageDialog(null,"輸入的數值小了");
}
num=JOptionPane.showInputDialog(null," 請猜計算機輸出的數:(0~100)");
i = Integer.parseInt(num);
}
System.out.println("恭喜你猜對了!");
}
}
public static void Main(string[] args)
{
int a = 85;
int v = -1;
for (int i = 0; a != v; i++)
{
Console.WriteLine("請輸入一個整數");
v = Convert.ToInt32(Console.ReadLine());
if (a < v)
{
Console.WriteLine("大了");
}
else if (a > v)
{
Console.WriteLine("小了");
}
}
Console.WriteLine("正確");
Console.Read();
}
㈤ 求一猜數字游戲的思路
我知道你的痛苦,我是過來人,那給你參考參考我之前做的代碼吧:#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <conio.h> /*getch()等函數*/
#define TIME 3
#define N 3
int ws;
int num[N];
int initmsg()
{
int a;
printf(" O(∩_∩)O~ \n");
printf(" 數字記憶小游戲 \n");
printf("★★★★★★★★★★★★★★★★★★★ \n");
printf("★ 製作者: ★\n");
printf("★ 1: 開始 ★ \n");
printf("★ 2: 游戲說明 ★\n");
printf("★ 3: 退出 ★\n" );
printf("★★★★★★★★★★★★★★★★★★★\n");
printf(" O(∩_∩)O~ \n");
printf("\n 你的選擇:");
scanf("%d",&a);
return a;
}
void gamemsg()
{
printf("1.輸入要記憶的數字位數\n");
printf("2.輸入完成後會出現3個相應位數的數字\n");
printf("3.這3個數字再3秒鍾後消失\n");
printf("4.輸入文字和符號時提示程序錯誤\n");
printf("5.輸入剛才出現過的3個數字\n");
printf("6.3次輸入的機會數字輸入正確則繼續游戲,3次機會全錯 則提示游戲是否繼續\n");
printf("7.輸入Q或者q時 程序結束\n");
printf("按任一建繼續");
getch();/*直接從鍵盤獲取鍵值*/}
void clear()/*當沒有換行時等待,輸入換行時結束此函數的執行,是一個在時間上的緩沖函數*/
{
while(getchar() != '\n');/*當你遇到回車符後退出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("輸入錯誤!請重試.\n");
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("輸入有誤!請重試.\n");
clear();
continue;
}
if(b > 0)
{
for(i = 0; i < N; ++i)
if(in[i] != num[i])
{
if(b > 1)
printf("輸入錯誤, 你還有%d次機會:\n", 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("恭喜你!記憶正確.\n");
}
printf("Bye!");
start:return 0;
}
㈥ 請問這個猜數字游戲怎麼玩,幾A幾B的!
先解釋標准規則,再介紹幾種變體。
通常由兩個人玩,一方出數字,一方猜。出數字的人要想好一個沒有重復數字的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。
(6)小班數學游戲親子猜數字擴展閱讀:
猜數字游戲最常用的解法,其演算法步驟如下:
a、首先猜 1234,得到第一個反饋(xAyB)。
b、從所有數字中,篩選出滿足已知反饋的所有可能數字,稱之為「可能集」。
c、對於所有數字(而不僅限於篩選出來的可能集),逐一評估每個數字的「好壞」,並給其打分。選取得分最高的那個數字猜。如果有多個數字的評分一樣高,則優先選取可能集中的數字。
d、重復步驟 b-c,直到猜出 4A0B 為止。
㈦ 猜數字游戲
首先強烈譴責"帝之魔王"的抄襲行為
這個問題,研究一下的確蠻有意思,下面是我的想法,不一定能解決問題,看可能可以給別人以啟發.我主要研究的是<在最壞情況下最少幾次猜中,策略如何?>
第一步,因為各個數都是一樣的,所以第一次輸入0123,現在輪到出題者,我相信沒人會給他A,頂多給他B,但是給他幾個B合理呢?
0B,下次猜到B的期望E=4*4/6=8/3
1B,E=1*1/4+3*3/6=7/4
2B,E=2*2/4+2*2/6=5/3
3B,E=3*3/4+1*1/6=29/12
4B,E=4作為出題人,希望對手猜對B的期望為最小,所以,選擇給他2B.
第二步,輸入4501,再次輪到出題者,現在問題開始復雜了.
我覺得可以把4501分為兩部分,45和01,其中45是新的,按上題的方法繼續做,
0B,E=2*2/4=1;
1B,E=1*1/2+1*1/4=3/4;
2B,E=2*2/2=2;所以出題者會在45中給1B.
其實復雜的是01部分,因為他涉及到A的部分,我只能假設,出題人在不得不給A時才給A這種情況,如果算期望的話,我已經搞不清了,所以從簡了,而且這假設我覺得不一定不合理.從給B部分,我們可以同樣按照開始的思路
0B,E=2*2/2=2
1B,E=1*1/2+1*1/2=1
2B,E=2*2/2=2
所以01中會給一個B,現在猜題者知道的東西有0,1中有1個;2,3中有一個;4,5中有一個;6,7,8,9中有一個.綜上,第2步,出題者給的是0A2B.
第三步,猜題者這一步,稍微聰明點,從4組數中分別去4個數,最起碼可以確定,3個數字.但是我們想,作為出題人,在6,7,8,9中,如果是一個數一個數猜,他肯定,會將最後一次猜的設為正確的以增加你猜題次數,也就是說,即使你從現在起,4步後,將6,7,8,9中正確數字的位置確定下來,也需要4步才能,將4個數字都確定.所以這種假設下,最少需要猜加上前面的兩步,共6步.如果第三步猜2046.
出題人可以不給A就不給A的前提下,理智出題者給的應該是,0A1B為什麼給1B不給0B呢,如果給0B,那麼,猜題人就知道前三組數字中1,3,5是必對了,除了在確定A是比3B有優勢,其他地方沒優勢.而給1B而不給2B的原因也就在於,確定A的時候1B比2B更有優勢(猜題者更難猜)這樣對猜題者來說,是很麻煩的,因為,他不知道1B是哪個,這次作答幾乎對確定B沒有任何貢獻,所以,猜題者不應該出這些數字.如果前三組數字只出現1個,那麼不僅可以唯一確定這個數字所在組的B,而且對6,7,8,9中選B也有積極意義
現在總猜題情況為0123,4501所以第三步,出6078.
問題越來越復雜了,對於0可以給B也可以不給,對於6,7,8可以給B也可以不給,0B,1,9肯定是B;2B,1肯定是B,而且6,7,8之間肯定有B,但如果給1B,猜題折還需要猜測,這個B來自哪裡,增加了猜題難度,所以出題者給0A1B.
第四步,現在總猜題情況為0123,4501,6078.後面在像前面一樣分析,我已經吃不消了,我就說我的猜題策略吧.第四步7890
如果第三步中,B是0的話,那麼,出題者該給答案1A1B
(沿著這個假設,往下,總猜題情況為0123,4501,6078,7890.現在知道的是0位置已經確定,9確定為B.第五步9240,如果9位置對了,那麼,如果給2A0B那麼結果必然是9350.如果給2A1B結果必然是9430,如果給3A0B,結果可能是9250和9340也需要兩步,最不好的情況就是要7步;如果9位置沒對,我相信,在兩步也能解出來.)只考慮這中情況,出題人就可以將你的步數限制到最少7步
如果第三步中,B是6,7,8中的一個,那麼,0肯定不是B了,1肯定是B,而出題者只用考慮B是在7,8中,還是6,很顯然,出題者會讓B在7,8中,所以給的答案是0A1B.總猜題情況為0123,4501,6078,7890
第五步8215,出題者0A2B
第六步5381,出題者
1A0B===>2741,
1A2B===>3751,5731
2A1B===>3481
3A0B===>4381.只有這四種情況,是由於受到前面的限制.這中結果也需要7步
我不保證自己證明的都很嚴密,但作為一個解題者,我的感覺是,解這個題目可以步數更少些(雖然我也不知道能不能再少),如果有人能以更少的步數解出,我也會崇拜之,但如果說解這題目要比七步多,我就不同意了,我是完全站在出題者的立場,為難猜題者的思路的假設下去,這也是最糟糕的情況,這也應該是步數最多的情況,如果哪裡不清楚可以問我,或者你認為自己可以讓我7步內猜不出,可以找我試試
㈧ 小班數學活動讓小朋友猜是什麼東西是什麼導入方式
讓小朋友猜東西的導入方法是:懸念設置導入法 。
懸念設置導入法是抓住小朋友的好奇心理,巧設懸念,以疑激學,促使學生在高昂的求知慾望中探求知識,引發學生學習知識的興趣。可以用些生活的東西設置懸念,然後導入法新課。
小班的幼兒對數、對事物的形狀、顏色雖然接觸的很多,但是在表達的時候還有一點難度,比如有幾個孩子在回答問題時,一定要以一問一答形式說出顏色和形狀,特別是對形狀的認識不是很清晰,雖然經過啟發以後都能作出回答,但是還需要多練習。
數學的東西比較枯燥,有的幼兒還不是很感興趣,教師就是要帶動幼兒主動的學習,主動地參與到活動中來。例如教幼兒認識圖形的環節,先讓幼兒在認識這些圖形的特徵以後,再做才做這樣的游戲,這樣,課堂教學會效果更好一點。
教學沒有固定的形式,一堂課如何開頭,也沒有固定的方法,由於教育對象不同,教學內容不同,每堂課的開頭也必然不同。即使是同一教學內容,不同的教師也有不同的處理方法。有經驗的教師總是十分重視一堂課的開端和知識之間的轉折與銜接。總是精心設計導入,講究導入的藝術性。教師要敢於想像,敢於創新,採用靈活多樣的方式導入新課。通過導入,把學生的注意力吸引到特定的教學任務和程序之中。
㈨ 猜數字的游戲規則
先解釋標准規則,再介紹幾種變體。
通常由兩個人玩,一方出數字,一方猜。出數字的人要想好一個沒有重復數字的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。
㈩ 猜數字的游戲規則是什麼
通常兩個人玩,一個人出數字,另一個人猜。出數字的人要想好一個沒有重復數字的4個數,不能讓猜的人知道。猜的人就可以開始猜。每猜一個數字,出數者就要根據這個數字給出幾A幾B,其中A前面的數字表示位置正確的數的個數,而B前的數字表示數字正確而位置不對的數的個數。