2012-11-21 46 views
0

我是楓林中的新人,聽說過,這個數學軟件在符號計算中功能強大。小號假設我們有一個像需要一個楓樹程序,

一個元素集:= {一,AAB,B,ABA,AB | BB,ABAB ...}

,使得#A = 20,而且,我們知道,有些這些元素滿足方程,例如對於某些正整數k,a^k =(ab)^ 2。我已經寫了一些循環,包括和如果和假設A是一組數字,但我已經筋疲力盡。我明白了,我無法妥善安排和連接這些功能。 我可以問一個人提示我,楓如何幫助我找到k的值,例如在滿足上述關係的有限範圍內[1..10]?

+0

集合A中究竟是什麼?你如何解釋a和b?是像{1,112,2,121,...}還是像{2,5,65,...}這樣的隨機條目? – Origin

+0

@Origin:就像第一套。事實上,我們假設a和b不合並,所以我們可以有一些新的元素(但有限),比如ab,ababab,....感謝您的時間。 –

+0

oke,所以你有一些變量a和b,它們作爲你的集合A中元素的數字。這些方程如何與集合相互作用?你說某些元素滿足方程a^k =(ab)^ 2,但這與這個集合有什麼關係?你是指方程(A中的元素)^ k =(ab)^ 2或(A中的元素)^ k =(A中的其他元素)^ 2?你的意思是「a和b不合並」? – Origin

回答

1

我這個你可以做這樣的事情:

restart: 
A:={a,b,1000*a+111*b,101*b+1010*a,110*a+b}; 
     A := {a, b, 110 a + b, 1000 a + 111 b, 101 b + 1010 a} 

for i from 1 to 9 do 
    for j from 1 to 9 do 
     As:=subs(a=i,b=j,A); 
     for e in As do 
      for ee in As do 
       if((ee<>e) and (e<=ee^2)) then 
       for k from 1 to 10 while (e^k<ee^2) do 
       od; 
       if(e^k=ee^2) then 
        print(e,"^",k,"=",ee,"^2"); 
       fi; 
       fi; 
      od; 
     od; 
    od; 
od; 

在集合中的元素只需填寫並讓它計算。如果您先排序您的設置(因此您有A = [1,6,16,61])並且計算所有平方數,您可以稍微快一點。然後循環查看條目,但僅查看那些較大(但可能不是您要查找的條目)的條目

+0

謝謝你的時間。這是一個充滿想法的好點。 :) –