鱼C论坛

 找回密码
 立即注册
查看: 35386|回复: 16

[技术交流] “地板除”还是“取整除”?—论程序员是如何被翻译误导的

[复制链接]
发表于 2016-8-27 09:28:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
“地板除”还是“取整除”?—论程序员是如何被翻译误导的

简言2016-02-01 23:05
http://toutiao.com/i6246339100962456066/



背景
我一直有种观点:很多数学和计算机科学中的概念我们之所以不懂,不是因为我们笨,而是因为这些概念的中文表达有问题。几年前,我在学习“函数”的时候,总是无法理解“函”这个字儿,后来发现“函”是个通假字,通“含有”的“含”,而“函”这个字本身跟它所表达的意义没有任何关系。
近日我在练习编程的时候又遇到了一个知识点,叫做“floor division”,字面意思是“地板除”,我觉得我可能又被翻译骗了,所以写了篇文章来揭露“地板下面的真相”。
1
“地板除”还是“取整除”?
一词两译哪个才是正确的?

                               
登录/注册后可看大图

我在查阅资料时碰到的图就是上面这个,“//”这个符号的描述是这样的:操作数的除法,其中结果是将小数点后的位数被除去的商。
如果你不相信这是中文,请前往这个网址:http://www.yiibai.com/python/python_basic_operators.html
我有点不敢相信这个人的译文,所以又去找了一个教程:

                               
登录/注册后可看大图

上图中“//”这个运算符的描述是:取整除 - 返回商的整数部分
这个图的网址是:http://www.runoob.com/python/python-operators.html
好吧,中文一下子没看懂,我又仔细看了一下实例和描述,原来是这个意思:
9除以2等于4.5:9/2=4.5
4.5的整数部分是:4
所以,9//2=4
意思我是明白了,那么“floor”(地板)跟这个除法有什么关系?
2
“floor division”的根源
追根溯源掀地板
我在一个名为“Learn Python”的手机App中找到了相应的知识点,看了看英文中该知识点的讲解,截图给大家:

                               
登录/注册后可看大图

我现在知道了,“//”这个符号跟“+”、“-”一样都叫做“操作符”(Operator),而根据这段英文的讲解,这个操作符由两个向右的斜线(forward slash)组成,它对应的英文是“floor division”。
看完这段解释后,我产生了疑惑:
“floor division”应该翻译成“地板除”,还是翻译成“取整除”?为什么“9//2=4”这种除法在英文里要叫做“floor division”呢?
于是,我开启了“floor division”的追根溯源之旅。
我首先想到的是查询“floor division”的英文解释,并找到的是这样一个解释:
If you imagine a room where 3 is on the ceiling and 2 is on the floor. 2.5 would fit in the middle. Floor division means the "//" will always take the floor or the lower number.
https://www.codecademy.com/forum_questions/5384587e52f863dcb8001c82
经过另一番检索,我在Wikipedia上找到了这样一段解释:
In mathematics and computer science, the floor and ceiling functions map a real number to the largest previous or the smallest following integer, respectively.

                               
登录/注册后可看大图

上图来源:https://en.wikipedia.org/wiki/Floor_and_ceiling_functions
仔细分析一下上面两个解释,第一个解释大意是这样的:
假想一个房间,数字“3”在屋顶上,数字“2”在地板上,数字“2.5”处于中间。“floor division”的意思是:“//”这个运算符会得到地板上的数字或者较小的那个数字。
第二个解释大意是这样的:
数学家高斯在1808年为“floor 函数”引入了[x]这个记号。1962年计算机科学家肯尼斯·艾佛森在他的书中引入了“floor”和“ceiling”这两个记号。“floor 函数”也被称为“最大整数函数”(greatest integer)或“整数函数”(entier function),该函数获得的值是一个变量“x”的整数部分(如前文4.5的整数部分是4)。
看完这两个解释后,我画了一个图:(嗯,我知道很丑)

                               
登录/注册后可看大图

这样一来,“floor division”的意思就更好理解了,如果要把“9/2”得到的数字“4.5”放在一个房间的话,这个房间的“地板”对应的数字是4,所以“9//2=4”。原来,“地板除”的结果就是“地板上的数字”。
仔细一想,“取整除”也是很对的,“取整除”运算取的就是除法结果的整数,而在中文中,“除法结果”有一个专门的术语,叫“商”。

                               
登录/注册后可看大图

上图来源:http://study.com/academy/lesson/ ... n-meaning-quiz.html
“商”在英文中对应的说法叫做“quotient”,在上图所在的页面中,其对应的英文是这样解释的:
The word quotient is from the Latin 'quotiens', which means 'how many times'. A quotient is the answer to a division problem. A division problem describes 'how many times' a number will go into another. The first known usage of the word in mathematics is found around 1400-1500 AD in England.
大家注意第二句话:“A division problem describes ‘how many times’ a number will go into another.”翻译成中文是这样的:除法问题描述的是一个数字能“进入”到另一个数字的次数。当然,这里翻译成“进入”肯定是不可以的,应该翻译成“除”。英文中一般这样描述:
Three goes into fifteen five times. 3除15得5。
上文第三幅图中的第二段也有类似的描述:“This code shows that 6 goes into 20 three times.”
大家知道百度百科是怎么介绍的吗?“已知两个因数的积与其中一个因数,求另一个因数的运算,叫做除法。”
我画了一个图帮助大家更好理解除法在中英文中的对应关系:

                               
登录/注册后可看大图

言归正传,我们通过“floor division”或者“取整除”运算得到的结果叫做“商”(quotient),这也是为什么在上文第三幅图中英文是这么说的:
“To determine the quotient and remainder of a division, use the floor division and modulo operators, respectively.”
翻译成中文就是:“若要通过除法运算得到商和余数,可以分别使用’取整除’运算符和’取模’运算符。”
(这里可能又有朋友会问,为什么求余数的运算符不叫“取余运算符”,而叫“取模运算法”?“模”(modulo)是什么呢?如果你对这个感兴趣,可以按照本文的思路自己去查一下,这既是数学问题,也是编程问题,还是翻译问题。)
3
来,我们来论一论翻译
背景介绍完了,开始聊翻译了
现在,我们再回到本文最初的问题,“floor division”翻译成“取整除”还是翻译成“地板除”。
从编程学习者的角度来看,当了解了“floor”的来历后,“地板除”是一个非常形象易懂的翻译方法,求“地板上的数字”。但是,在较为正式的文本中,我们普遍的认识是,如果中文中出现“地板除”,就会觉得“不伦不类”、“不上档次”。中国人在将国外的一些概念引入到国内时,有一种习惯就是“概念嘛,就得有个概念的样子”,所以“取整除”这种译法就比“地板除”更规矩,更像是一个概念。
可是,别忘了那位计算机科学家除了引入了“floor”之外,还引入了“ceiling”,如果我们把“floor division”翻译成“取整除”,那么如果有“ceiling division”的话,这种除法又翻译成什么呢?我找到的一种译法是,将“floor”对应的取整翻译成“向下取整”,把“ceiling”对应的取整翻译成“向上取整”。
中国文字博大精深,“地板除”和“天花板除”这种看似另类的译法是不能被一部分人接触的,而我们的读者,尤其是学编程的读者,则也许永远也不知道“floor”和“ceiling”背后的形象比喻。
究竟在数学和计算机科学的“进口”过程中还有多少术语概念被翻译给“高大上化”了?术语概念究竟能否用更形象但却不正式的方法来翻译呢?如今网络语言对中文以及中国人思维的影响是否会导致数学概念和计算机概念的标准译法也相应改动呢?这些问题都很值得探讨。
我前几日在微博上说,“翻译有时候真是程序员的灾难,英语不好的程序员不一定成不了好程序员,但英语好的程序员肯定更有发展空间”。
一些IT圈的朋友也给我说,他们对新程序员的要求之一是能看懂代码的文档,而大部分文档都是英文的。
我隔几天就会看到有程序员在网上吐槽一些计算机类的书籍翻译得太懒,看中文不如看英文,他们说有能力的译员根本不会看中文的编程书籍。
然而,我想在此强调一点,计算机类的书翻译得好不好与译者关系很大,而译者绝对不能是纯技术背景,也不能是纯语言背景,应该是“技术专家”+“语言专家”,只有这样的人才能翻译技术类的书籍和文章,否则,翻译出来的东西就会像“函数”这个术语翻译错误一样遗害一代又一代的中国人。
以上就是“地板下面的真相”。
结语
向那些光看中文教材就成为编程高手的牛人致敬,你们太TM不容易了!



评分

参与人数 5荣誉 +21 鱼币 +21 贡献 +15 收起 理由
一个账号 + 1 + 1 + 1 鱼C有你更精彩^_^
梦鸩鸩 + 5 + 5 + 3 感谢楼主无私奉献!
haxw2005 + 5 + 5 + 3
小火木 + 5 + 5 + 3 支持楼主!
无符号整形 + 5 + 5 + 5 感谢楼主无私奉献!

查看全部评分

本帖被以下淘专辑推荐:

  • · Python|主题: 245, 订阅: 51
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-8-27 17:22:29 | 显示全部楼层
所以向上取整的除法就可以叫天花板除了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-27 23:48:10 | 显示全部楼层
lz一米八。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-6 18:10:04 | 显示全部楼层
昨天才接触到地板除这个概念,现在理解是不是无论a,b数据类型是什么,我都取整。即使是浮点数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-27 21:00:34 | 显示全部楼层
哇,楼主的这种探索精神真的超级棒!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-16 21:07:09 | 显示全部楼层
大佬,写笔记引用下你的帖子~感谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-24 15:05:22 | 显示全部楼层
6666666666666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-9 13:49:28 | 显示全部楼层
实话,看国语起来的程序员都是灵魂写手
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-5 21:33:07 | 显示全部楼层
太同意了,初学者每次写作业都得百度一下啥叫地板除,太抽象太难记了。取整除就好很多
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-17 21:54:10 | 显示全部楼层
就是看了你这篇文章才注册的 希望有更好的研究性的文章
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-18 08:42:59 From FishC Mobile | 显示全部楼层
前来考古
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-9 11:42:53 | 显示全部楼层
考古选手前来打卡
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-9 11:53:36 | 显示全部楼层
看完后觉得地板除一下子好理解啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-15 14:26:31 | 显示全部楼层
多谢楼主的文章,明白了。谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-16 20:28:58 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-1-20 19:34:25 | 显示全部楼层
原文链接在此:
https://mp.weixin.qq.com/s/aoRKUtx9fOmTjCn_Kzun0A
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-1 15:54:35 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-3-29 03:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表