2 回答

嗶嗶one
TA貢獻1854條經驗 獲得超8個贊
就是p取為其中與q互素的那些元素
————————————————————————————
在matlab中可以利用邏輯值提取矩陣元素。方法是
B=A(L)
其中L是和A的size完全一致的0-1邏輯矩陣,所得的B是A中與L對應位置為1的那些元素所組成的向量。
在本例中,gcd(q,p)==1就是0-1邏輯向量,若p中與q的最大公約數為1則為1(即T),否則為0(即F).于是p = p(gcd(q,p)==1)就把p中那些與q互素的元素重新定義為p了 。與其等效的語句還可寫成p(gcd(q,p)~=1)=[];意思是把那些不互素的元素給刪了。

慕尼黑的夜晚無繁華
TA貢獻1864條經驗 獲得超6個贊
警告說的很清楚啊 數字太大了 結果不對。
不過這個求最大公約數,手算也可以把 28 = 2*2*7
顯然1.135181137086446e+018能被4和7整除,所以最大公約數就是28。
有些東西知道原理,不一定要求助工具的啊
gcd(28,1.135181137086446e+018)
Warning: Inputs contain values larger than the largest consecutive flint.
Result may be inaccurate.
> In gcd>warnIfGreatThanLargestFlint at 77
In gcd at 43
ans =
-4
添加回答
舉報
0/150
提交
取消