@misaki_rain 很认真的一位同学,实际上通过这个bug,也可以更深刻的理解最小金额的意义。除了生成序列还进一步对生成的结果做了一些验证,这些思考和验证方法可以进一步使用自动化测试来验证,实际上后洗牌算法在课程中没有编写自动化测试来验证,没有测试就有bug,也说了测试的重要性。非常感谢@misaki_rain的问题,非常棒!???
可以参考官方文档:https://golang.org/pkg/math/rand/#Seed
意思就是:seed方法用来提供一个初始化的种子值,从而来确定随机源中默认的状态值;如果不调用seed方法,那么默认的行为就是调用Seed(1),将1作为初始化的种子值;这样rand每次使用的种子数都是1,所以每次重启程序都会随机生成的序列都是一样的;不重启时程序也不停止,一直获取的随机数是不一样的;每次重新设置种子值,那么随机序列就不一样了。