私は今週土曜日にプログラミングの概念についての試験を行っており、いくつかの概念をよりよく理解するためにいくつかの情報を見つけるのに苦労しています。
ループ不変とアサーションの違いは何ですか?私には彼らは同じに見えます。
また、while
ループ不変性定理とは正確には何ですか?
それが私なのか、アルゴリズムや疑似コードに関する特定の情報をオンラインで見つけるのが途方もなく難しいかはわかりません。
不変 は、プログラムの実行中に真であると信頼できる条件です。たとえば、ループ不変条件は、ループのすべての実行の最初と最後でtrueになる条件です。
assertion は、プログラムに置かれる述語(true-falseステートメント)であり、その場所では述語が常に真であると開発者が考えていることを示します。プログラマは、コードでアサーションを使用して不変条件を明示的にすることがよくあります。
Whileループ不変定理
Sがループの不変量であると仮定します
While C do
E
また、ループの最初のエントリでSがtrueであると仮定します。その後、ループのすべての反復後、Sは真のままです。特に、