所谓三体气候模拟,就是将太阳出现的情况进行分类讨论,然后将其呈现出来。比如说一颗太阳就是恒纪元,两颗太阳可能是二日凌空或二日连珠,三颗太阳也可能是三日凌空或三日连珠。只要明白了这一点,这个三体气候模拟的程序就很好写了。
在写程序前,得先导入一个库。由于三体问题的复杂性,我们姑且将三颗太阳出现的概率定位三分之一,也就是说要用到随机的方法。所以我们这里需要导入random库中的randint——随机数函数。
from random import randint
在插入完random库后,要先确定几个变量。由于三体世界有三颗太阳,且可能出现在不同的位置,所以可以定义变量:
# 其中0代表该太阳为飞星,1代表该太阳出现
sun1 = randint(0, 1)
sun2 = randint(0, 1)
sun3 = randint(0, 1)
# 1~3分别代表不同的位置,如果位置相同就是连珠
sun1_pos = randint(1, 3)
sun2_pos = randint(1, 3)
sun3_pos = randint(1, 3)
除了这几个基础变量,还需要两个用来输出气候类型和纪元类型的变量:weather和era_mode
weather = ""
era_mode = ""
因为后面将这两个变量以文字形式输出,所以是String的形式
完成变量设定后,就该考虑三体世界的气候情况了。
依照书中的描述,我们可以分为(恒纪元就不讨论了):三颗飞星(即没有太阳)、二日凌空、二日连珠、三日凌