#13821: 用 Python 解題心得


weiye (weiye)


直接做會超過時間。

思考關鍵一:一串數列有初始值,而且每項都只跟前三項有關,數列的結果又 mod 10007,所以在有限的項數之內,此數列必定會開始重複。

採行策略一:利用 Python 先在本機找出此數列每多少項會開始重複,就可以建構一個有限長度的陣列,包含這些不重複的數據。

思考關鍵二:Python 內建只有 list ,單純使用 list 當陣列,會導致記憶體使用需求過多(爆掉),所以需要另外找尋可以節省記憶體,且有效率地保留數字陣列的方法。

#35980: Re: 用 Python 解題心得


712045@st.lths.tc.edu.tw (程式餓靈)


直接做會超過時間。

思考關鍵一:一串數列有初始值,而且每項都只跟前三項有關,數列的結果又 mod 10007,所以在有限的項數之內,此數列必定會開始重複。

採行策略一:利用 Python 先在本機找出此數列每多少項會開始重複,就可以建構一個有限長度的陣列,包含這些不重複的數據。

思考關鍵二:Python 內建只有 list ,單純使用 list 當陣列,會導致記憶體使用需求過多(爆掉),所以需要另外找尋可以節省記憶體,且有效率地保留數字陣列的方法。

有甚麼更好的方法可以解決記憶體的問題呢?

#35981: Re: 用 Python 解題心得


asnewchien@gmail.com (david)


這題循環節 2781668

建表不會爆。

或者可以用矩陣快速冪。