을 증명하기위한 : { n >= 1 } pre-condition
i = 1;
z = 1;
while (i != n) {
i = i + 1;
z = z + i*i;
}
{ z = n*(n+1)*(2*n + 1)/6 } post-condition
정말 붙어입니다. 지금까지 시도한 불변의 일부는 다음과 같습니다 z <= n*(n+1
사후 조건과이 코드 조각의 부분적인 정확성을 보여주는 문제가 있습니다. { m = A ≥ 0 }
x:=0; odd:=1; sum:=1;
while sum<=m do
x:=x+1; odd:=odd+2; sum:=sum+odd
end while
{ Postcondition }
나는 학교를위한 과제이며, 정확한 통찰력과
루프의 불변량을 찾으려고합니다. (예를 들어 다음 코드에서) 저는 일반적으로 불변량을 찾는 법을 정말로 모릅니다. 누군가 invariant를 찾는 방법을 알려주고 다음 코드를 찾을 때 도움이 될 수 있습니까? 감사 public static int div(int a, int b)
{
int q = 0;
while(a >= b)
{
에서 \와 루프 불변을 입증 할 수 없습니다 WP. ACSL by Example (68 페이지, swap_ranges)에도 이와 유사한 기능이 있지만이 기능은 WP 플러그인에서이 특정 기능을 증명할 수 없었습니다. 나는 내 컴퓨터에서 그것을 시도했지만 참으로 똑같은 불변성을 증명할 수는 없다. 전체 코드 /*
* memswap()
*
* Swaps t
int i = 0
boolean answer = false
while (i < a.length) {
if a[i] == 0
answer = true
i = i + 1
여기서 'a'는 정수 배열입니다. 나는 이것에 대한 루프 불변량이 무엇인지 물어 보았다. 나는 배열이 0을 포함하고 있는지 여부를 이미 확인했다. 그러나 지
필자는 사소한 기능 (PHP는 편리함)을 작성했으며 누군가가 유도를 통해 구조를 도울 수 있기를 바랬다. function add_numbers($max) {
//assume max >= 2
$index=1;
$array=array(0);
while ($index != $max) {
//invariant: ∀ k:
데이터 구조 & 알고리즘의 초등 과정을 수강하고 있습니다. 우리가 사용하는 책은 CLRS의 정액 작업입니다. 2.1 장 : 삽입 정렬에서 설명한대로 루프 불변성을 이해하는 데 어려움이 있습니다. 상기 subarry A가 [1..j -1] [A에서 원래 구성 요소의 1-8 선 루프의 각 반복의 시작에서 : 책 말한다 1.j-1], 정렬 된 순서로 나타납니다.