标题: 爱因斯坦带来的悖论
作者: Demon
链接: https://demon.tw/programming/einstein-paradox.html
版权: 本博客的所有文章,都遵守“署名-非商业性使用-相同方式共享 2.5 中国大陆”协议条款。
今天文科物理课上的一个问题:
一列静止长度为10米的火车,A站在车的后部,B站在车的前部。当列车以0.6C(C为光速)的速度通过一个站台的时候,站台上的人看到A先向B开枪,过了12.5纳秒,B也向A开枪。问在火车上的乘客看到谁先开枪。
物理问题就不在这里讨论了,写个程序算一下:
var t = (function() { var c = 3e8; //光速 var v = 0.6 * c; //火车速度 var l = 10; //火车长度 var t = 12.5e-9; //地面坐标系上的时间间隔 var y = Math.sqrt(1 - Math.pow(v/c,2)); //伽马因子的倒数 //洛伦兹变换,返回火车坐标系中的时间间隔 return (y * t - (v / Math.pow(c,2) * l)) * 1e9; })(); WScript.Echo(t);
得到的结果是-10纳秒,也就是说,在火车上的乘客看来,是B先向A开枪。
爱因斯坦告诉我们,一切都是相对的,同一个事件,在不同的人看来可能是不一样的。你觉得我是错的,我觉得你是错的,其实我们都没有错,只是我们的标准不一样。
编程语言又何尝不是如此,我觉得C好,你觉得C++好,他觉得Java好,只不过是我们的标准不同,又何必去争论到底哪个最好?
引用《Perl高级编程》中的一句话结尾:
赞赏早在COBOL流行的时候,人类就已经登上了月球,可见如果不是把精力花在争论语言的孰优孰劣的话,就可以做很多事情。
微信赞赏支付宝赞赏
随机文章:
基本赞同。。。