質問: ### 前提・実現したいこと pythonでコードを書いていますが あまりにも長いので短くきれいにまとめようとしています。 ### 発生している問題・エラーメッセージ 下記の部分をリストとfor文を使って短くまとめたいのですが、どうすればよいのでしょうか...? ``` エラーメッセージ ``` ### 該当のソースコード ``` x99=random.randint(10,590) x100=random.randint(max(0,x99-50), min(590,x99+50)) x101=random.randint(max(0,x100-50), min(590,x100+50)) x102=random.randint(max(0,x101-50), min(590,x101+50)) x103=random.randint(max(0,x102-50), min(590,x102+50)) x104=random.randint(max(0,x103-50), min(590,x103+50)) x105=random.randint(max(0,x104-50), min(590,x104+50)) x106=random.randint(max(0,x105-50), min(590,x105+50)) x107=random.randint(max(0,x106-50), min(590,x106+50)) x108=random.randint(max(0,x107-50), min(590,x107+50)) x109=random.randint(max(0,x108-50), min(590,x108+50)) ``` ### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答: xについている数字を添え字とした配列を考えて、 * 初期値がx[99]。10-590までの乱数。 * x[100]はx[99]のmaxやらminやらの値 * x[101]はx[100]のmaxやらminやらの値 : : と考えていくと、上記処理の一般化は、 * x[i]はx[i-1]のmaxやらminやらの値 と書けるでしょう。あとはその通りに実装すればよいでしょう。 ``` # xは十分な大きさの配列とする x[99] = random.randint(10,590) for i in range(100,110): x[i]=random.randint(max(0,x[i-1]-50), min(590,x[i-1]+50)) ```