
摘要:《最強大腦》節目中的“火線對決”項目引發熱議,本文通過數學與軟件知識對“火線對決”的題目本質進行分析,利用數學軟件給出隨機題目的圖像。
關鍵詞:火線對決,鄰接矩陣,圖像生成
在最強大腦第五季的節目中,“火線對決”這個游戲項目引發熱議,楊英豪選手成功地捍衛了中國隊的尊嚴,不負眾望的贏下了比賽。節目播出以后,微信小程序以及APP商城紛紛推出類似游戲“不交叉”、“交叉線”,具體規則請參照《最強大腦》第五季節目或微信小程序中的游戲規則。本文從數學角度對該游戲的本質進行剖析。我們規定點數為n,線段條數為e。
1 鄰接矩陣的定義
表示頂點之間相鄰關系的矩陣,記作 ,其中規定:
,并且在本問題中,因為每個點至少與其余兩點相連,所以對于 并且在鄰接矩陣中,其階數n為隨機生成的點的個數,而組成的線段數 。
2 線段條數的取值范圍
這里線段條數e的取值范圍是針對題目“有解”而言的取值范圍,所以對于一個給定的n(點的個數),線段條數e想必不是可以隨便取的,根據題意“讓每個點至少與其余兩點相連”,那么毫無爭議,線段條數e的最小值為n,即: ,根據歸納法,我們證明 。
3 鄰接矩陣的生成
我們想生成題目圖像則必須確定的因素有三,一是點的個數,二是線段的條數,三是鄰接矩陣內的元素,一、二是主觀因素,而三的情況有成百上千中,這是由軟件生成若干個并供出題人挑選的,所以分析該問題的關鍵就是如何利用matlab生成鄰接矩陣。
首先打開matlab,利用下述代碼建立.m文件,放入工作區。
functionAdjM=AdjM_Generate()
n=input
e=input
AdjM=zeros(n,n);
for i=1:n
need=2-sum(AdjM(i,:));
for j=1:need
p=ceil(n*rand);
while(AdjM(i,p)==1 ||p<=i)
p=ceil(n*rand);
end
AdjM(i,p)=1;AdjM(p,i)=1;
end
在命令行輸入Adjm=Adjm_Generate,隨后根據提示輸入點的個數與線段的條數,命令行中便自動生成隨機的符合要求的鄰接矩陣。
4 題目圖像生成
得到鄰接矩陣以后,生成圖像的三要素就全部具備,我們再在工作區內建立另一個生成圖像的.m文件,代碼如下。
functionPic_Plot(AdjM)
figure;
hold on;
[n,p]=size(AdjM);
point=100*rand(n,2);
plot(point(:,1),point(:,2),'ko');
for i=1:n-1;
A=find(AdjM(i,i:end)==1)+i-1;
for j=1:length(A)
plot([point(i,1),point(A(j),1)],[point(i,2),point(A(j),2)],'r');
end
end
axis([0 100 0 100])
end
建立好.m文件以后,再在命令行輸入Pic_Plot(AdjM),matlab軟件會自動為其生成隨機圖像。
5 小結
《最強大腦》中看似復雜的問題,楊英豪選手卻可以非常迅速的完成挑戰戰勝對手,本質上在于楊英豪選手迅速的觀測出了點與點、線與線之間的關聯關系,這種肉眼觀察的目的實際上與我們討論鄰接矩陣的目的是一致的。實際上,從 的極限式中也可以看出本題的實質與三角形必定有千絲萬縷的關系。
不管是對于什么問題,不管是用數字化分析還是從感官上分析,捕捉到問題的實質內涵才是解決問題的關鍵所在。
參考文獻:
[1]Alexander E. Litvak,AnnaLytova,KonstantinTikhomirov,NicoleTomczak-Jaegermann,Pierre Youssef. Adjacency matrices of random digraphs: Singularity and anti-concentration[J]. Journal of Mathematical Analysis and Applications,2017,445(2).
[2]屈長青.鄰接矩陣的應用[J].郴州師范高等??茖W校學報,2000(06):19-23.
作者簡介:呂婧雯(1997-10- )女,漢族,安徽阜陽人,大學本科,專業方向旅游管理。