Help me about loop invariant of LCM

In summary, a loop invariant is a condition that remains true throughout each iteration of a loop, specifically in the context of calculating the Least Common Multiple (LCM). Understanding the loop invariant is important in ensuring the correctness of the LCM algorithm. The loop invariant for LCM can vary depending on the algorithm being used and can be used to optimize the efficiency of the algorithm by identifying redundant operations.
  • #1
flying2000
40
0
please help me, i was stuck in here 2 days!
algorithm to prove lcm:

a:=m
b:=n
while a != b
if a < b
a:= a + m
else
b:= b + n

//postcondition: a is the lcm(m,n)

what's the loop invariant?I thought it is(not sure):
lcm(ak, bk) = lcm(ak/m, bk/n) *lcm(m,n)
I am not sure and also impossible to prove my loop invariant...
 
Physics news on Phys.org
  • #2
Forget it! problem soloved ...

Forget it! problem soloved ... :smile:
 
  • #3


The loop invariant in this algorithm is the fact that at each iteration, the value of a is a multiple of m and the value of b is a multiple of n. This can be proven by induction.

At the beginning of the loop, a and b are initialized to m and n respectively, which are both multiples of themselves. So the invariant holds true for the first iteration.

Assuming the invariant holds true for the kth iteration, we can show that it also holds true for the (k+1)th iteration. If a < b, then a will be incremented by m, which is a multiple of m. Similarly, if b < a, then b will be incremented by n, which is a multiple of n. So in both cases, the invariant holds true for the (k+1)th iteration.

Finally, when the loop terminates, we have a = lcm(m,n), which is a multiple of both m and n. Therefore, the loop invariant also holds true for the postcondition.

Regarding the loop invariant that you have suggested, lcm(ak, bk) = lcm(ak/m, bk/n) * lcm(m,n), it is not a valid invariant for this algorithm. This is because at each iteration, the values of a and b are not necessarily equal to ak/m and bk/n respectively. They are only incremented by m and n, but their initial values are still m and n. Therefore, the original loop invariant holds true in this case.
 

1. What is a loop invariant in the context of LCM?

A loop invariant is a condition that remains true before, during, and after each iteration of a loop. In the context of LCM, it is a statement that is true at the beginning of each iteration of a loop that calculates the Least Common Multiple (LCM) of two numbers.

2. Why is understanding the loop invariant important when working with LCM?

Understanding the loop invariant is important because it helps ensure the correctness of the algorithm being used to calculate LCM. By proving that the loop invariant is true at the beginning of each iteration, we can be confident that the algorithm will produce the correct result.

3. How do you determine the loop invariant for LCM?

To determine the loop invariant for LCM, you need to understand the properties of LCM. For example, the LCM of two numbers must be a multiple of both numbers. So, a possible loop invariant could be "The current value of LCM is a multiple of both numbers being compared."

4. Can the loop invariant for LCM be different for different algorithms?

Yes, the loop invariant for LCM can differ depending on the algorithm being used. Different algorithms may use different properties of LCM to determine the loop invariant. It is important to ensure that the loop invariant accurately represents the properties of LCM that the algorithm uses.

5. How can we use the loop invariant to improve the efficiency of the LCM algorithm?

The loop invariant can be used to optimize the LCM algorithm by identifying redundant operations. For example, if the loop invariant states that the current value of LCM is a multiple of both numbers, we can skip any operations that do not affect this property and reduce the number of calculations needed.

Similar threads

  • Linear and Abstract Algebra
Replies
3
Views
1K
  • Linear and Abstract Algebra
Replies
4
Views
933
  • Engineering and Comp Sci Homework Help
Replies
1
Views
961
  • General Math
Replies
5
Views
2K
  • Linear and Abstract Algebra
2
Replies
59
Views
13K
  • Linear and Abstract Algebra
2
Replies
41
Views
3K
  • Linear and Abstract Algebra
Replies
1
Views
1K
  • Linear and Abstract Algebra
Replies
2
Views
4K
  • Linear and Abstract Algebra
Replies
1
Views
622
  • Quantum Physics
Replies
3
Views
744
Back
Top