这段话是否正确?「取余这个运算,只有 Python 是对的。当初 C 这个老师教错了,那么一大票学生也就只敢跟着老师错。只有 Python 敢于站出来坚持正确答案。」

3 天前
 cnbatch

今天在看一篇公众号文章《性能之王:最快的编程语言》,发现评论区有这么一段对话:

然后我找了下在 stackexchange 的真实提问:

https://math.stackexchange.com/questions/623449/negative-number-divided-by-positive-number-what-would-be-remainder

从回答来看,C 和 Python 的两种做法在数值计算上都是成立的。两种做法的区别在于是否允许余数为负数,或者说,符号该不该与原数值相同。

不允许余数出现负数的,是目前广泛使用的欧几里得除法。

所以“数学洁癖”会认为负值余数是错的?

3901 次点击
所在节点    C
50 条回复
ccpp132
2 天前
@moxuze 我记得以前 basic 下标就是 1 开始了。当然还得是 pascal ,你爱从几开始自己定义
cnbatch
2 天前
@ccpp132 结合你的这段回忆,看得出其实 @moxuze 是在讽刺原图的“楓梓”啦
InkStone
2 天前
@GuuJiang 这不就是欧几里得辗转相除法么?这是一个计算带余除法的算法,而不是一种除法的定义。你都查了,怎么连基本概念都没搞清楚
FalconD
2 天前
InkStone
2 天前
@FalconD 好吧。欧几里得环。确实没往这方面想,是我搞错了。
zeromake
2 天前
@moxuze lua 下标就是 1 开始,实际上没啥问题,问题在于写 lua 几乎不可能不使用 c 做扩展工作,然后就爽了一会在 c 里用下标 0 ,一会在 lua 里下标 1……
tabc2tgacd
2 天前
感觉无需纠结这种问题,用什么语言就按什么语言的规矩来就行了。
bluesenzhu
2 天前
@FalconD 确实维基百科写的很全面很详细
namonai
1 天前
`%` 在 C 里面也叫取模运算,没人说过这是取余数
Izual_Yang
1 天前
经典老番,数学也有自己的“负小数的整数部分”(高斯取整),但是很少有能解释清楚这样定义有何优点的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1093235

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX