66207


### 前提・実現したいこと

素朴な疑問なんですが、無限ループを処理する方法は「処理時間が〇〇秒を越した時にbreak」以外に存在しますか?

Pythonを使って、ある問題でwhileの無限ループの処理を「処理時間が10秒を超えたらbreak」を再現するために以下のような条件付をして回しました。  
ただ、自分としては「無限である」ということそのものを条件にしたいです。10秒に特に根拠がないからです。

数学に詳しくないのでよくわからないのですが、「無限であること」を再現して、その条件から外れるとループ処理から外せることはできますか？

### 該当のソースコード

処理時間が10秒超えたらbreak

[code]

    import time
    
    start = time.time()
    while time.time() - start <= 10:
        処理内容
    
    
[/code]


CC BY-SA 4.0
2020-05-02T07:44:56.710
66202
2020-05-02T22:36:41.973
question
python
「無限ループの状態」そのものをIF文の条件にはできないのか？


「あるアルゴリズムが有限時間内に終了するかを判定できるアルゴリズムは存在するか」が質問であるなら、[停止性問題](https://ja.wikipedia.org/wiki/%E5%81%9C%E6%AD%A2%E6%80%A7%E5%95%8F%E9%A1%8C)が答えでしょう。

> 素朴な疑問なんですが、無限ループを処理する方法は「処理時間が〇〇秒を越した時にbreak」以外に存在しますか?

の回答としては、時間を監視する方法の他に、「繰り返し回数が所定の値に達したら終了する」方法もあります。

* * *

追記です。

再帰処理では深さも判定基準になります。  
処理の内部に関わりますが、循環を検出したら終わりにすることも考えられます。


CC BY-SA 4.0
2020-05-02T08:50:29.563
66207
2020-05-02T22:36:41.973
2020-05-02T22:36:41.973
35558
35558
66202
answer