[1275] int(pi)

Title Text:If replacing all the ‘3’s doesn’t fix your code, remove the 4s, too, with ‘ceiling(pi) / floor(pi) * pi * r^floor(pi)’. Mmm, floor pie.<

Origin:https://xkcd.com/1275/

https://www.explainxkcd.com/wiki/index.php/1275:_int(pi)

https://app-xkcd-cn.appspot.com/

这个漫画旨在向程序员提供一个提示,数字“3”被诅咒,不应该被使用。没有解释为什么数字3被诅咒,它可能是任意选择的。标题文本暗示使用被诅咒号码的后果是无法运行的代码,这对任何程序员来说都是一种痛苦。不知何故被诅咒的3号的荒谬是幽默的一部分。

为了帮助程序员,漫画通过使用稍微复杂的使用int(pi)的方法给出了如何避免使用数字3的示例,这意味着pi的整数部分,没有小数部分。 Pi,一个无理数,具有从3.14159开始的值……,使得int(pi)等于3.这在计算球体积的公式中得到证明,通常为(4/3)* pi *(r ^ 3),但转换为避免数字3到(4 /int(pi))* pi *(r ^ int(pi))。

由于多种原因,使用变量和常量是一种很好的编程习惯,其中值在多个位置使用,但是在自然数的情况下通常不使用。在这种情况下,这种类型的编程是一种有效的方法,但通常情况下通常用于更具体的情况,而不是某些数字被视为被诅咒。

在标题文本中,Randall更进了一步,建议使用楼层和天花板功能:天花板(pi)将向上舍入到下一个整数,即4;并且floor(pi)是向下舍入到下一个整数,即3。(注意,当n大于或等于零时,int(n)和floor(n)具有相同的值。对于小于零的值, int(n)等于ceiling(n)。)

这里的笑话是因为编程的基本规则令人困惑,而且新手程序员经常被告知在没有任何解释的情况下根本不做某些事情(参见292:goto)。这尤其包括对代码中“魔术数字”的一般禁止。用命名常量替换所有重要的幻数使程序更易于阅读,理解和维护。兰德尔通过暗示某些数字可能存在固有问题而将其推向极端,但总体思路完全可信。

嗯……地板馅饼。是对辛普森一家的提及。

另见Cargo cult编程。

Leave a Reply

Your email address will not be published.

Categories