关于正负数的取模并小议某度的流量生产思维

一、原由

昨晚上,写代码时突然想到正整数与负整数的取模问题,然后就用某度一翻搜索!终究某度速度快嘛,还是要用一用的,别鄙视我…就是答案五花八门。也不知道哪个答案是正确的。没法了,那就试试吧。然后在笔者电脑上已有的几个编程语言中一翻测试。得到了一个略有价值的答案。

二、分享一下

本着互联网共享精神,看到不少人也在纠结此问题,就准备分享一下!笔者前面的博文中已多次提出对于那些复制、粘贴,在互联网上乱写乱画的人痛恨!这类人简直就是互联网LJ生产者。所以回答的时候略有怼了一下此类人物,当然!笔者不是以骂人为乐的,虽然有怼,但也只是针对说此类人的行为,没奔着人身攻击去。下面会给出在某度知道的原文:

1、题主的问题:

在这里插入图片描述
原链接:https://zhidao.某度.com/question/607073436.html?entry=qb_uhome_tag

2、某大流量帐号的回答

在笔者之前的(目前可能是最后一个,因为笔者的回答被删了,也是得赞最高的)一个回答是:

在这里插入图片描述
顺便说一下:此号取名为XXXX教育!此号在此这之前得了73.6万个赞!!!
事实上,不能说此回答不学无术吧~ 至少9除8取模为1应该在绝大部分编程语言中是对的。但看看后面的话21除7的模就是3! 再回头看9除8,此人显然认为取模就是商取整!9除8是正好因为商取整和余数均为1,让他举例举对了!至少说明此人对模运算有所误解!
申明:本人自多渠道得到的知识取模运算在C、JS、python中均为符号%
如有错请各位看官一定留言指正!不甚感激!

3、笔者的回答

本着“侠之大者,为网为民”,“路见不平一声吼” 等等大侠精神!前一句为玩笑!别怼我!笔者是这样回答的:

楼上不懂别来祸害人,乱扯一通!还取名什么教育!取模是计算机方面的术语,常用于奇偶判断,素数计算等。取余是数学概念。在正整数范围来看,取模和取余是相同的,结果一致,用小学生的话说,就是计算余数。当负数参与时,取模和取余虽然还是计算余数,但计算结果就不一定相同了!以你的21除3为例,取模和取余结果都是0,22除以7的模是1,余数自然也是1。
以计算机语言python来看取模:python本身有取模运算符%,-7%4的结果为1。7%-4=-1。从这个结果来看和数学概念的余数是不同的。不过有一点,python的模运算是这样,用其它计算机语言得出的结果也不一定相同。在js中-7%4=-3,7%-4=3。虽然不同语言的计算结果不同,但它们与数学概念中的余数是有区别的。
虽然不同语言的模运算结果不同,但大部分时间使用时是没差的。比如我们需要判断一个变量x是否为偶数,python为例:

def is_even(x):
	if x%2==0:
		return True
	else:
		return False

在js中可以这么写:

function is_even(x){
if (x%2==0)
{return true}
else
{return false}
}

有图为证:
在这里插入图片描述
当然已经被删掉了!谁让我去怼一个超级流量巨星呢…

三、一点感想

事实上,在发布回答前,我不仅在python中测试中了和利用在线js编辑器测试。我还在C、C++中也做了测试:
在这里插入图片描述
上图结果为3

就这一么一个再三测试的回答!竟然被删了!当然删就删了,我也不那么在乎某度知道,我那帐号还是用验证码找回来的,只是觉得我费那么大劲找回帐号,发了一个自认比较靠谱的回答,结果如下:
在这里插入图片描述
也没给我一个理由,笔者猜测是影响楼上那位大V大流量的大人物了吧~
某度工作人员心理活动:你个小B3,竟敢怼我们XX大v,这可是我们的流量保证,我们就靠着他瞎扯谈吃饭的!滚你的~
不是我这么黑暗,而是我实测了一下!我申诉了,秒申,秒删!

四、继续取模的问题

这段本来就是准备发在这的,关于为什么不同语言结果不同的一点想法。某度知道显然不是发这个的好地方。昨天晚上就压着没写!因为发现被删了,就啰嗦了前面一大堆,也顺便说清事情来龙去脉了!
记忆中(不保真)小学数学教材中对余数的定义大致是:余数是自然数,取值范围为0到除数之间。很显然这只适用于小学正整数除法!
从实数的角度来看,事情就复杂得多了,这里不讨论数学!
因为一时半会找不到资料证明我上述的记忆中的定义,所以没写在某度知道中。多说一下:从二个程序得出不同结果,也证明了取模和余数是不同的,因为数学是严谨的!编程语言是为了解决问题的数学运用!再者,前一位大v的回答压根就搞错了概念!
那么为什么两个语言得出的结果不同呢?
猜测是取整数商运算时,二个语言向不同的方向取整了。如:
-7/4,结果为:-1.75,python向下(负无穷方向)取整,结果为-2,那么 -7 -(-2*4),结果余数为1,c语言和js语言向上(向0的方向)取整,结果为-1,余数= -7 - (-1 * 4),结果为-3

五、总结一下

以上纯为笔者个人实际测试,保证经过测试!
从以上来看,如果笔者记忆中的余数定义没错,C语言的取模更接近数学的余数,当然在实际使用中,取模往往用于判断是否整除,这种用法结果并不重要!编程语言中,算出结果和数学概念不一致的情况可不仅仅是模运算!
最后,请某度知道做个人吧~ 好的产品才会有更多的人来使用!流量是一时的,当互联网LJ多了,用户找不到有用的信息时,自然会用脚投票的!
在此也真诚的希望各位内容生产者,别内卷出这些LJ内容!当整个互联网环境被破坏了,大家都没饭吃!

老规矩!别抄我的文章,不是我怕你拿去赚流量,是我不能保证我说的是对的!就算当前是对的,关于软件硬件的东西经常在更新,以后就不一定是对的了!传来传去,文章时间就不对了!最后害了别人!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无证的攻城狮

如本文对您有用,大爷给打个赏!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值