導航:首頁 > 源碼編譯 > 趣味演算法

趣味演算法

發布時間:2022-01-30 02:30:51

❶ 數學典故、圖形、趣味計算、小知識【1至5年級已學知識和課外知識】

抽屜原理的應用

1947年,匈牙利數學家把這一原理引進到中學生數學競賽中,當年匈牙利全國數學競賽有一道這樣的試題:「證明在任何六個人中,一定可以找到三個互相認識的人,或者三個互不認識的人。」

這個問題乍看起來,似乎令人匪夷所思。但如果你懂得抽屜原理,要證明這個問題是十分簡單的。我們用A、B、C、D、E、F代表六個人,從中隨便找一個,例如A吧,把其餘五個人放到「與A認識」和「與A不認識」兩個「抽屜」里去,根據抽屜原理,至少有一個抽屜里有三個人。不妨假定在「與A認識」的抽屜里有三個人,他們是B、C、D。如果B、C、D三人互不認識,那麼我們就找到了三個互不認識的人;如果B、C、D三人中有兩個互相認識,例如B與C認識,那麼,A、B、C就是三個互相認識的人。不管哪種情況,本題的結論都是成立的。

由於這個試題的形式新穎,解法巧妙,很快就在全世界廣泛流傳,使不少人知道了這一原理。其實,抽屜原理不僅在數學中有用,在現實生活中也到處在起作用,如招生錄取、就業安排、資源分配、職稱評定等等,都不難看到抽屜原理的作用。

兔同籠
你以前聽說過「雞兔同籠」問題嗎?這個問題,是我國古代著名趣題之一。大約在1500年前,《孫子算經》中就記載了這個有趣的問題。書中是這樣敘述的:「今有雞兔同籠,上有三十五頭,下有九十四足,問雞兔各幾何?這四句話的意思是:有若干只雞兔同在一個籠子里,從上面數,有35個頭;從下面數,有94隻腳。求籠中各有幾只雞和兔?

你會解答這個問題嗎?你想知道《孫子算經》中是如何解答這個問題的嗎?

解答思路是這樣的:假如砍去每隻雞、每隻兔一半的腳,則每隻雞就變成了「獨角雞」,每隻兔就變成了「雙腳兔」。這樣,(1)雞和兔的腳的總數就由94隻變成了47隻;(2)如果籠子里有一隻兔子,則腳的總數就比頭的總數多1。因此,腳的總只數47與總頭數35的差,就是兔子的只數,即47-35=12(只)。顯然,雞的只數就是35-12=23(只)了。

這一思路新穎而奇特,其「砍足法」也令古今中外數學家贊嘆不已。這種思維方法叫化歸法。化歸法就是在解決問題時,先不對問題採取直接的分析,而是將題中的條件或問題進行變形,使之轉化,直到最終把它歸成某個已經解決的問題。

普喬柯趣題
普喬柯是原蘇聯著名的數學家。1951年寫成《小學數學教學法》一書。這本書中有下面一道有趣的題。

商店裡三天共賣出1026米布。第二天賣出的是第一天的2倍;第三天賣出的是第二天的3倍。求三天各賣出多少米布?

這道題可以這樣想:把第一天賣出布的米數看作1份。就可以畫出下面的線段圖:

第一天為1份;第二天為第一天的2倍;第三天為第二天的3倍,也就是第一天的2×3倍。

列綜合算式可求出第一天賣布的米數:

1026÷(l+2+6)=1026÷9=114(米)

而 114×2=228(米)

228×3=684(米)

所以三天賣的布分別是:114米、228米、684米。

請你接這種方法做一道題。

有四人捐款救災。乙捐款為甲的2倍,丙捐款為乙的3倍,丁捐款為丙的4倍。他們共捐款132元。求四人各捐款多少元?

鬼谷算
我國漢代有位大將,名叫韓信。他每次集合部隊,只要求部下先後按l~3、1~5、1~7報數,然後再報告一下各隊每次報數的余數,他就知道到了多少人。他的這種巧妙演算法,人們稱為鬼谷算,也叫隔牆算,或稱為韓信點兵,外國人還稱它為「中國剩餘定理」。到了明代,數學家程大位用詩歌概括了這一演算法,他寫道:

三人同行七十稀,五樹梅花廿一枝,

七子團圓月正半,除百零五便得知。

這首詩的意思是:用3除所得的余數乘上70,加上用5除所得余數乘以21,再加上用7除所得的余數乘上15,結果大於105就減去105的倍數,這樣就知道所求的數了。

比如,一籃雞蛋,三個三個地數餘1,五個五個地數餘2,七個七個地數餘3,籃子里有雞蛋一定是52個。算式是:

1×70+2×21+3×15=157

157-105=52(個)

請你根據這一演算法計算下面的題目。

新華小學訂了若干張《中國少年報》,如果三張三張地數,余數為1張;五張五張地數,余數為2張;七張七張地數,余數為2張。新華小學訂了多少張《中國少年報》呢?

採納一下啦~~~我要提高採納率啊 ~~~拜託拜託~~~~

❷ 趣味計算

設有鋼筆x只,圓珠筆y只,鉛筆z只。
x+y+z=100,10x+3y+0.5z=100,
如果全買鋼筆,則能買十隻,如果全買圓珠筆能買33隻,全買鉛筆能買50隻,但這是不可能的。x小於等於10,y小於等於33,z小於等於50。將x用一到十之間的數代換一下,保證y小於等於33,z小於等於50,且是整數就OK了

❸ 求數學趣味小知識

九九歌

九九歌就是我們現在使用的乘法口訣。
遠在公元前的春秋戰國時代,九九歌就已經被人們廣泛使用。在當時的許多著作中,都有關於九九歌的記載。最初的九九歌是從"九九八十一"起到"二二如四"止,共36句。因為是從"九九八十一"開始,所以取名九九歌。大約在公元五至十世紀間,九九歌才擴充到"一一如一"。大約在公元十三、十四世紀,九九歌的順序才變成和現在所用的一樣,從"一一如一"起到"九九八十一"止。
現在我國使用的乘法口訣有兩種,一種是45句的,通常稱為"小九九";還有一種是81句的,通常稱為"大九九"。

阿拉伯數字

在生活中,我們經常會用到0、1、2、3、4、5、6、7、8、9這些數字。那麼你知道這些數字是誰發明的嗎?

這些數字元號原來是古代印度人發明的,後來傳到阿拉伯,又從阿拉伯傳到歐洲,歐洲人誤以為是阿拉伯人發明的,就把它們叫做"阿拉伯數字",因為流傳了許多年,人們叫得順口,所以至今人們仍然將錯就錯,把這些古代印度人發明的數字元號叫做阿拉伯數字。

現在,阿拉伯數字已成了全世界通用的數字元

❹ 趣味數學題

在老闆的手裡吧

❺ C++ 關於趣味取球的演算法

給,已經編譯運行確認:
#include <iostream>
#include <time.h>

using namespace std;

enum Ball
{
white,
black
};

int main(int argc, char *argv[])
{
//定義袋中黑白球的數目
int BlackNum;
int WhiteNum;

//由用戶指定袋中的黑白球數目
cout << "請輸入袋中白球的數目" << endl;
cin >> WhiteNum;
cout << "請輸入袋中黑球的數目" << endl;
cin >> BlackNum;

//初始化隨機數種子
srand((unsigned)time(NULL));
int times = 0; //取球的次數

while ((BlackNum + WhiteNum) > 1)
{
++times;
int FirstBall;
int SecondBall;

//每次取得的第一個和第二個球
if (WhiteNum == 0) //袋中已沒有白球,則只能取黑球
{
FirstBall = black;
cout << "第 " << times << "次取出的第一個球為黑色" << endl;
--BlackNum;
}
else if (BlackNum == 0)//袋中已沒有黑球
{
FirstBall = white;
cout << "第 " << times << "次取出的第一個球為白色" << endl;
--WhiteNum;
}
else //否則隨機取得一個球
{
FirstBall = rand() % 2;
if (FirstBall == white)
{
cout << "第 " << times << "次取出的第一個球為白色" << endl;
--WhiteNum;
}
else
{
cout << "第 " << times << "次取出的第一個球為黑色" << endl;
--BlackNum;
}
}

if (WhiteNum == 0) //袋中已沒有白球,則只能取黑球
{
SecondBall = black;
cout << "第 " << times << "次取出的第一個球為黑色" << endl;
--BlackNum;
}
else if (BlackNum == 0)//袋中已沒有黑球
{
SecondBall = white;
cout << "第 " << times << "次取出的第一個球為白色" << endl;
--WhiteNum;
}
else
{
SecondBall = rand() % 2;

if (FirstBall == white)
{
cout << "第 " << times << "次取出的第二個球為白色" << endl;
--WhiteNum;
}
else
{
cout << "第 " << times << "次取出的第二個球為黑色" << endl;
--BlackNum;
}

}

//根據取出的兩個球的顏色是否相等來覺得是放黑球進去還是白球進去
if (FirstBall == SecondBall)
{
++WhiteNum;
}
else
{
++BlackNum;
}

}

if (WhiteNum == 1)
{
cout << "最後一個球為白球" << endl;
}
else
cout << "最後一個球為黑球" << endl;
system("pause");
}

❻ 趣味數學

題目的演算法,就是忽悠。。。

每人實際拿出來9元
3人一共:9×3=27元
這27元,老闆收了25元,服務員藏了2元
25+2=27正好
為什麼要用27+2=29?
這個算式毫無道理

❼ 趣味C語言小編程

題眼就是求出2~10的最小公倍數,然後減一。
模擬排隊的演算法是可行的,但不是最優的。

#include <stdio.h>
int od(int x,int n) //x是否能被n整除,是返回1,否返回0
{
if (x%n) return 0;
return 1;
}

int gbs(int a[],int n) //求a[n]內所有元素的最小公倍數
{
int i,j,k,o,m=0;
int b[20],c[100];
for (i=0;i<n;i++)
{
if(m<a[i]) m=a[i];
b[i]=a[i];
}
j=2; o=0;
while (j<=m)
{
k=0;
for (i=0;i<n;i++){
if (od(b[i],j)) k++;
if (k>1) break;
}
if(k>1)
{
c[o++]=j;
for (i=0;i<n;i++)
if (od(b[i],j)) b[i]=b[i]/j;
m=0;
for (i=0;i<n;i++)
if(m<b[i]) m=b[i];
}
else
j++;
}
k=1;
for(i=0;i<o;i++)
{
k*=c[i];
}
for (i=0;i<n;i++)
{
k*=b[i];
}
return k;
}

main()
{
int a[10];
for(int i=1;i<=10;i++)
a[i-1]=i;
printf("count=%d\n",gbs(a,10)-1);
getchar();
return 0;
}

❽ 趣味數學題+++++++++游戲+++++++++

毛利人居住在紐西蘭,眾所周知他們是從波利尼西亞移民來到紐西蘭的。按照毛利人的傳說所言,他們的祖先是乘坐七條獨木舟到達那裡的。貝爾(1979年)注意到毛利人的文化傳統中主張「行為游戲和娛樂」。Mu Torere(木圖樂樂)游戲好像是毛利人唯一的棋盤游戲,棋盤被畫在地上和totara樹皮的內皮上(這是一種生長在紐西蘭堅硬的淡紅色大樹),或用木炭直接在被砍伐的totara樹的木質本體上畫出。
材料
一塊8角星的棋盤、4隻白色棋子、4隻黑色棋子
參賽人數:2
目的
棋手試圖在行棋中以封鎖對手,棋藝也許是能取勝起決定因素。
游戲方法
將白色棋子放在標號1-4的星角上,黑色棋子放在其餘的星角上。黑色棋子先走棋,並依次輪流進行走棋。不允許跳躍。
棋子可以按以下的規則移動:
1.從一個星角直接移動到鄰近的另一個星角;
2.從棋盤的中央移動到一個星角;
3.如果一個或兩個鄰近的星角已被對手的棋子佔領,則可從其中的一個星角移動到中央。
有時最後一條規則(規則3)只讓棋手們在最初的兩步里走,讓學生們發現
取得中央的所有權是取勝是必要之所在。棋手也應當試圖在棋盤上得到V字形的排列(如,putahi和兩個在45度角的圓圈)。
如果雙方棋手都明白這一原則還不犯錯誤,那麼木圖樂樂棋游戲將下成和局。

❾ 趣味數學題求解

2,3,5,6的公倍數有30,60,90,120等其中120-1=119是7的倍數,這條階梯最少共有119階

❿ 趣味編程

先定義一個數組,存儲原來的數據,從數組的第一位開始,每拿掉一張,就把該位置零,下一位與最後一位掉換,其餘位向前覆蓋,直到直剩一張為止.
#include <stdio.h>
void main()
{
int a[100];//定義數組
int i,m,n,j,temp;
printf("Enter n:");//輸入有多少張
scanf("%d",&n);
if(n==1) printf("the last is:1");//1張2張就直接給出來了
else if(n==2) printf("the last is:2");
else
{
for(i=0;i<n;i++)
{
a[i]=i+1;printf("%3d ",a[i]);//給數組賦值,就相當於編號了
}
printf("\n");
i=0;
do
{
a[i]=0;//拿掉一張,該位置就空了,置為0;
j=i+1;
while(j<n-1)//後位進一,空位的下一位移到最後
{
if(j==i+1) temp=a[j];
a[j]=a[j+1];
if(j==n-2) a[j+1]=temp;
j++;
}

if(a[n-2]==0) break;//還剩一張了
i++;
for(m=0;m<n;m++)//這個循環語句是用來觀察每一步,以驗證結果
{
if(a[m]==0) continue;
printf("%3d ",a[m]);
}
printf("\n");
}while(1);
printf("The last is:%d\n",a[n-1]);//最後一張的編號
}
}
用TC2.0編譯通過,希望能幫到你.

閱讀全文

與趣味演算法相關的資料

熱點內容
程序員真的累嗎 瀏覽:323
學信網app為什麼刷臉不了 瀏覽:871
天蠍vs程序員 瀏覽:991
單片機下載口叫什麼 瀏覽:186
程序員的道 瀏覽:924
雲伺服器不實名違法嗎 瀏覽:556
怎樣查看文件夾圖片是否重復 瀏覽:993
文件怎麼導成pdf文件 瀏覽:806
打開sql表的命令 瀏覽:101
安卓手機如何面部支付 瀏覽:37
天元數學app為什麼登錄不上去 瀏覽:822
明日之後為什麼有些伺服器是四個字 瀏覽:102
安卓系統l1是什麼意思 瀏覽:24
伺服器一直崩應該用什麼指令 瀏覽:924
cm202貼片機編程 瀏覽:729
php構造函數帶參數 瀏覽:179
解壓電波歌曲大全 瀏覽:345
為啥文件夾移到桌面成word了 瀏覽:860
命令符的安全模式是哪個鍵 瀏覽:760
編程中學 瀏覽:957