为了账号安全,请及时绑定邮箱和手机立即绑定

那为什么gcd()这个返回值为何为负?

那为什么gcd()这个返回值为何为负?

慕容3067478 2022-12-21 19:15:06
是求两个整数的最大公约数,返回值是正整数,那为什么gcd(28,1.135181137086446e+018)这个返回值为何为负?
查看完整描述

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)=[];意思是把那些不互素的元素给删了。

查看完整回答
反对 回复 2022-12-25
?
慕尼黑的夜晚无繁华

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

查看完整回答
反对 回复 2022-12-25
  • 2 回答
  • 0 关注
  • 181 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号