《數學建模與計算》
1、 問題描述
某廠生產一種彈子鎖具,每個鎖具的鑰匙有5個槽,每個槽的高度從這6個數中任取一數。由於工藝及其它原因,製造鎖具時對5個槽的高度有兩個要求。其一:
至少有3個槽的高度不同;其二:相鄰兩槽的高度之差不能為5。稱滿足上述兩個條件製造出來的所有互不相同的鎖具為一批。
試計算一批鎖具的總數n。
2、 問題分析與建模
因為彈子鎖具的鑰匙有5個槽,每個槽的高度從這6個數中任取一數,且5個槽的高度必須滿足兩個條件:至少有3個不同的數;相鄰兩槽的高度之差不能為5。所以我們在求一批鎖具的總數時,應把問題化為三種情況,即5個槽的高度由5個不同數字組成、由4個不同數字組成、由3個不同數字組成,分別算出各種情況的鎖具個數,然後相加便得到一批鎖具的總個數。
在分別求這三種情況鎖具個數的時候,先求出滿足第1個條件的鎖具個數再減去不滿足第2個條件的鎖具個數。在求這三種情況鎖具個數的時候,主要依靠排列組合的不盡相異元素的全排列公式。
下面用乙個5元陣列來表示乙個鎖具:
key=(h1,h2,h3,h4,h5)
其中hi表示第i個槽的高度,i=1,2,3,4,5。此5元陣列表示一把鎖,應滿足下述條件:
條件1: hi∈,i = 1,2,3,4,5。
條件2:對於任意一種槽高排列h1,h2,h3,h4,h5,至少有3種不同的槽高。
條件3:對於任意一種槽高排列h1,h2,h3,h4,h5,有| hi,hi-1|≠5,i = 2,3,4,5。
而兩個鎖可以互開的條件為:兩個鎖的鑰匙有四個槽高相同,其中乙個槽高相差為1。
一批鎖具個數的計算如下所示:
記一批鎖具的集合為:
k=,i = 1,2,3,4,5,且(h1,h2,h3,h4,h5)為一鎖具},其個數小於65,可採用逐個檢驗條件1,2,3的方法,求一批中的所有鎖具,當然也可計算出其個數。
3、 程式**
count=0;
for h1=1:6
a(1)= h1;
for h2=1:6
a(2)= h2;
for h3=1:6
a(3)= h3;
for h4=1:6
a(4)= h4;
for h5=1:6
a(5)= h5;
s=0;flag=1;
b=sort(a); c=diff(a);d=diff(b);
for i=1:4
if d(i)~=0
s=s+1;
endif abs(c(i))==5
flag=0;
endendif s>=2&flag
count=count+1;
endendendendendendcount
4、 結果分析
程式執行結果為:
count =5880
計算結果說明,每一批鎖具有5880個。
關於舉行方案設計單項競賽的通知
雲南省物流職業技能競賽組織委員會 各分賽區 根據 關於舉辦雲南省首屆物流職業技能競賽暨2010年全國物流職業技能競賽雲南賽區選拔賽的通知 雲人社發 2010 249號 檔案精神,全國總決賽將於12月23日 29日在北京舉行。為切實做好雲南賽區參加全國總決賽的選拔工作,現將全國總決賽方案設計單項競賽雲...
關於購買包裝箱的談判方案
關於向黃鶴樓酒業公司 包裝箱的談判方案 一 談判主題 以適當的 向黃鶴樓酒業公司 5000個包裝箱。二 談判目標 戰略目標 成功的完成這次的談判,讓對方對我公司有乙個好的影響,並能與對方建立長期的合作關係。目標 規格 三層的瓦楞紙箱 125cm 17cm 25cm 1 最優期望目標 7元1個 2 可...
家訪活動方案設計 關於某學生的家訪方案
劉陽同學平時在學校的表現不錯。不偷懶不耍滑,會按照老師班委的吩咐完成任務。不過缺少勇於承擔責任的意識,一切競選都不參加,問其原因居然是怕擔責任,有風險。另外,有個不好的現象。劉陽同學不按時吃飯,這個對於正處在青春期成長期的孩子來說非常不利於身體健康。聽同學說,為了避免去食堂吃飯排隊時的擁擠,很多時候...