直接做會超過時間。
思考關鍵一:一串數列有初始值,而且每項都只跟前三項有關,數列的結果又 mod 10007,所以在有限的項數之內,此數列必定會開始重複。
採行策略一:利用 Python 先在本機找出此數列每多少項會開始重複,就可以建構一個有限長度的陣列,包含這些不重複的數據。
思考關鍵二:Python 內建只有 list ,單純使用 list 當陣列,會導致記憶體使用需求過多(爆掉),所以需要另外找尋可以節省記憶體,且有效率地保留數字陣列的方法。
直接做會超過時間。
思考關鍵一:一串數列有初始值,而且每項都只跟前三項有關,數列的結果又 mod 10007,所以在有限的項數之內,此數列必定會開始重複。
採行策略一:利用 Python 先在本機找出此數列每多少項會開始重複,就可以建構一個有限長度的陣列,包含這些不重複的數據。
思考關鍵二:Python 內建只有 list ,單純使用 list 當陣列,會導致記憶體使用需求過多(爆掉),所以需要另外找尋可以節省記憶體,且有效率地保留數字陣列的方法。
有甚麼更好的方法可以解決記憶體的問題呢?
這題循環節 2781668
建表不會爆。
或者可以用矩陣快速冪。