Re: [問題] 請問要如何用C++ 設定f(a*b)=f(a)*f(b)?

看板Programming作者 (ggg)時間15年前 (2009/08/10 11:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/6 (看更多)
※ 引述《aleyukimo (aleyu)》之銘言: : 最近在算一個題目 : 例如 : f(a)=b : f(b)=c : f(c)=d : f(d)=e : f(e)=a*b : f(a*b)=f(a)*f(b)=b*c : ...... : 遇到b*b*c=c : (a*b*c*d)*(b*d*f)=a*c*f : .......... : 這裡的abcde不一定是實數,他只是個符號 : 例1 : a=10000 : b=01000 : c=00100 : d=00010 : e=00001 : ac=a*c=10100 : cde=00111 : (ac)*(cde)=ade=10011 : 例2 : 這裡有5個數(a,b,c,d,e) 可以看成內積 : a=(-1,1,1,1,1) : b=(1,-1,1,1,1)... : e=(1,1,1,1,-1) : 此時ac=a與c的內積=(-1,1,-1,1,1) : 但加法不行... : 要求滿足f^n(a)=a的n的最小值 : n是指合成函數 : 如f^2(a)=f(f(a))=a : f^3(a)=f(f(f(a)))=a : 因為要有很多了例子要跑 如f(e)=a*c*d : 或者不只有a b c d e5個數 也有6個數.... : 不知道要怎麼用C++去設定函數? : 麻煩各位給個頭緒 : 我已經想了很久 好幾天睡不太好 : 謝謝 手推導的結果是: vector_length min_n 2 3 3 7 4 15 5 21 6 63 f^vector_lenth(a) = a * f(a) 最短循環數 min_n 顯然跟 (2^vector_length - 1 ) 有關, (0,0...,0) 無法循環 f 是 shift & round-back2 * 是 vector bit XOR 好玩, 可以介紹用途嗎 ? ※ 編輯: ggg12345 來自: 140.115.4.12 (08/10 11:44)
文章代碼(AID): #1AVvIo1m (Programming)
討論串 (同標題文章)
文章代碼(AID): #1AVvIo1m (Programming)