今天心血来潮,想搞个“麦克斯韦妖”出来玩玩,别误会,不是真要挑战热力学第二定律,就是想做个模拟程序,看看这小妖精是怎么“捣蛋”的。
第一步,当然是先搞清楚这“妖精”是
简单来说,麦克斯韦妖就是个假想出来的家伙,它能探测到每个气体分子的速度,然后把快的分子和慢的分子分开,这样就能让热的更热,冷的更冷,好像热量自己就从低温跑到高温去,这不就违反热力学第二定律嘛
然后,我就开始琢磨怎么用程序来模拟这个过程。
小编温馨提醒:本站只提供游戏介绍,下载游戏推荐89游戏,89游戏提供真人恋爱/绅士游戏/3A单机游戏大全,点我立即前往》》》绅士游戏下载专区
开工!我先用 Processing 这个软件搭个框架。
为啥用 Processing?因为它简单好上手,画图特方便,特别适合我这种想快速看到结果的人。我在 Processing 里面写几个类,一个小球类,一个妖精类,还有一个主程序类,把它们串起来。
然后就是不断地调试、修改。
小球乱飞,妖精也傻乎乎的,不知道该干我就一点点改代码,让小球能正常碰撞,让妖精能正确判断小球速度,然后把它们分开。
经过一番折腾,终于有点样子!
我看着屏幕上,小球们慢慢地被分成两拨,一边是“热”的,一边是“冷”的,还真有点像那么回事!虽然这只是个模拟程序,但看着还是挺有成就感的。
我还加点“料”。
比如,我让妖精不是每次都把小球分开,而是有一定的概率“偷懒”,这样就能模拟出更真实的情况。我还加个显示温度的条条,这样就能更清楚地看到两边的温差变化。
这回“捉妖”经历还挺有趣的。虽然过程有点曲折,但看到结果的时候,还是觉得挺值的。下次有空,我还想试试其他的物理模拟,看看能不能搞出点更有意思的东西来!