[ Prev ]
2021-08-25

-- Aug 25 In-Class Exercise
find the gcd of 14 and 30 - Scheme (define (gcd u v) (if (= v 0) u (gcd v modulo(u v)))) (define (gcd 14 30) (if (= v 0) u (gcd v modulo(u v)))) 1. v != 0 -> gcd 30 modulo(14 30) -> gcd 30 14 2. gcd 30 14
	v != 0 
-> gcd 14 modulo(30 14) -> gcd 14 2 3. v != 0 -> gcd 2 modulo(14 2) -> gcd 2 0 4. v is 0 thus the gcd is 2
  1. ######################################################## Find the gcd of 14 and 30 - Prolog gcd(U, V, U) :- V = 0. gcd(U,V, X) :- not (V =0), Y is U mod V, gcd (V,Y,X).
gcd(14,30,X) 1. not V=0 -> y = 14 mod 30 = 14 -> gcd(30,14,X) 2. not V=0 ->y = 30 mod 14 = 2 -> gcd(14,2,X) 3. not V=0 -> y = 14 mod 2 = 0 -> gcd(2,0,X) 4. V = 0 therefore gcd = 2
(Edited: 2021-08-25)
find the gcd of 14 and 30 - Scheme (define (gcd u v) (if (= v 0) u (gcd v modulo(u v)))) (define (gcd 14 30) (if (= v 0) u (gcd v modulo(u v)))) 1. v != 0 -> gcd 30 modulo(14 30) -> gcd 30 14 2. gcd 30 14 v != 0 -> gcd 14 modulo(30 14) -> gcd 14 2 3. v != 0 -> gcd 2 modulo(14 2) -> gcd 2 0 4. v is 0 thus the gcd is 2 ######################################################### Find the gcd of 14 and 30 - Prolog gcd(U, V, U) :- V = 0. gcd(U,V, X) :- not (V =0), Y is U mod V, gcd (V,Y,X). gcd(14,30,X) 1. not V=0 -> y = 14 mod 30 = 14 -> gcd(30,14,X) 2. not V=0 ->y = 30 mod 14 = 2 -> gcd(14,2,X) 3. not V=0 -> y = 14 mod 2 = 0 -> gcd(2,0,X) 4. V = 0 therefore gcd = 2

-- Aug 25 In-Class Exercise
Scheme
 gcd(14, 30) -> 30 != 0 -> 14%30=14 -> gcd(30,14)
 gcd(30, 14) -> 14 != 0 -> 30%14=2 -> gcd(14,2)
 gcd(14,2) -> 2 != 0 -> 14%2=0 -> gcd(2,0)
 gcd(2,0) -> 0 = 0 -> ans:2
Prolog
 gcd(14,30,U) -> 14 != 0 -> not used
 gcd(14,30,X) -> 30 != 0 -> Y=14%30=14 -> gcd(30,14,X)
 gcd(30,14,U) -> 30 != 0 -> not used
 gcd(30,14,X) -> 14 != 0 -> Y=30%14=2 -> gcd(14,2,X)
 gcd(14,2,U) -> 14 != 0 -> not used
 gcd(14,2,X) -> 2 != 0 -> Y=14%2=0 -> gcd(2,0,X)
 gcd(2,0,U) -> 0 = 0 -> U=2 -> ans:2
(Edited: 2021-08-25)
Scheme gcd(14, 30) -> 30 != 0 -> 14%30=14 -> gcd(30,14) gcd(30, 14) -> 14 != 0 -> 30%14=2 -> gcd(14,2) gcd(14,2) -> 2 != 0 -> 14%2=0 -> gcd(2,0) gcd(2,0) -> 0 = 0 -> ans:2 Prolog gcd(14,30,U) -> 14 != 0 -> not used gcd(14,30,X) -> 30 != 0 -> Y=14%30=14 -> gcd(30,14,X) gcd(30,14,U) -> 30 != 0 -> not used gcd(30,14,X) -> 14 != 0 -> Y=30%14=2 -> gcd(14,2,X) gcd(14,2,U) -> 14 != 0 -> not used gcd(14,2,X) -> 2 != 0 -> Y=14%2=0 -> gcd(2,0,X) gcd(2,0,U) -> 0 = 0 -> U=2 -> ans:2

-- Aug 25 In-Class Exercise
Scheme (gcd 14 30), 30 != 0, recurse with 30 and 14 (gcd 30 14), 14 != 0, recurse with 14 and 2 (gcd 14 2), 2 != 0, recurse with 2 and 0 (gcd 2 0), 0 == 0, return 2 Prolog gcd(14, 30, U), 30 != 0, rule fails gcd(14, 30, X), 30 != 0, Y = 14, call gcd(30, 14, X) gcd(30, 14, U), 14 != 0, rule fails gcd(30, 14, X), 14 != 0, Y = 2, call gcd(14, 2, X) gcd(14, 2, U), 2 != 0, rule fails gcd(14, 2, X), 2 != 0, Y = 0, call gcd(2, 0, X) gcd(2, 0, U), 0 == 0, U = 2.
(Edited: 2021-08-25)
<nowiki>Scheme (gcd 14 30), 30 != 0, recurse with 30 and 14 (gcd 30 14), 14 != 0, recurse with 14 and 2 (gcd 14 2), 2 != 0, recurse with 2 and 0 (gcd 2 0), 0 == 0, return 2 Prolog gcd(14, 30, U), 30 != 0, rule fails gcd(14, 30, X), 30 != 0, Y = 14, call gcd(30, 14, X) gcd(30, 14, U), 14 != 0, rule fails gcd(30, 14, X), 14 != 0, Y = 2, call gcd(14, 2, X) gcd(14, 2, U), 2 != 0, rule fails gcd(14, 2, X), 2 != 0, Y = 0, call gcd(2, 0, X) gcd(2, 0, U), 0 == 0, U = 2.</nowiki>

-- Aug 25 In-Class Exercise
Scheme: gcd(14,30) check if V=0 -> 30!=0 gcd(30, 14 mod 30) -> gcd(30,14), 14!=0 gcd(14, 30 mod 14) -> gcd(14,2), 2!=0 gcd(2, 14 mode 2) -> gcd(2,0), 0=0 2
                      
Prolog: |?- gcd (14, 30, U) gcd(U, V, X) :- not(V = 0), Y is U mod V, gcd(V,Y,X) gcd(14,30,X) :- not(V = 0), V = 30 14 is 14 mod 30, gcd(30,14,X) gcd(30,14,X) :- not(V = 0), V = 14, 2 is 30 mod 14, gcd(14,2,X) gcd(14,2,X) :- not(V = 0), V = 2, 0 is 14 mod 2, gcd(2,0,X) gcd(2,0,X) :- not(V = 0), 0 = 0, 2
(Edited: 2021-08-25)
Scheme: gcd(14,30) check if V=0 -> 30!=0 gcd(30, 14 mod 30) -> gcd(30,14), 14!=0 gcd(14, 30 mod 14) -> gcd(14,2), 2!=0 gcd(2, 14 mode 2) -> gcd(2,0), 0=0 2 Prolog: |?- gcd (14, 30, U) gcd(U, V, X) :- not(V = 0), Y is U mod V, gcd(V,Y,X) gcd(14,30,X) :- not(V = 0), V = 30 14 is 14 mod 30, gcd(30,14,X) gcd(30,14,X) :- not(V = 0), V = 14, 2 is 30 mod 14, gcd(14,2,X) gcd(14,2,X) :- not(V = 0), V = 2, 0 is 14 mod 2, gcd(2,0,X) gcd(2,0,X) :- not(V = 0), 0 = 0, 2

-- Aug 25 In-Class Exercise
Using Scheme
- Do (gcd 14 30)
v=30 != 0
-> (gcd 30 (modulo 14 30)) = (gcd 30 14)

- Do (gcd 30 14)
v=14 != 0
-> (gcd 14 (modulo 30 14)) = (gcd 14 2)

- Do (gcd 14 2)
v=2 != 0
-> (gcd 2 (modulo 14 2)) = (gcd 2 0)

- Do (gcd 2 0)
v=0 == 0 => True => Answer = 2

Using Prolog
- Do gcd(14,30,x)
v=30 == 0 => False
v=30 != 0 => True, Y = 14 mod 30 = 14, gcd(30,14,x)

- Do gcd(30,14,x)
v=14 == 0 => False
v=14 != 0 => True, Y = 30 mod 14 = 2, gcd(14,2,x)

- Do gcd(14,2,x)
v=2 == 0 => False
v=2 != 0 => True, Y = 14 mod 2 = 0, gcd(2,0,x)

- Do gcd(2,0,x)
v=0 == 0 => True => Answer = 2
(Edited: 2021-08-25)
'''Using Scheme''' <br>- Do (gcd 14 30) <br>v=30 != 0 <br>-> (gcd 30 (modulo 14 30)) = (gcd 30 14) <br> <br>- Do (gcd 30 14) <br>v=14 != 0 <br>-> (gcd 14 (modulo 30 14)) = (gcd 14 2) <br> <br>- Do (gcd 14 2) <br>v=2 != 0 <br>-> (gcd 2 (modulo 14 2)) = (gcd 2 0) <br> <br>- Do (gcd 2 0) <br>v=0 == 0 => True => <u>Answer = 2</u> <br> '''Using Prolog''' <br>- Do gcd(14,30,x) <br>v=30 == 0 => False <br>v=30 != 0 => True, Y = 14 mod 30 = 14, gcd(30,14,x) <br> <br>- Do gcd(30,14,x) <br>v=14 == 0 => False <br>v=14 != 0 => True, Y = 30 mod 14 = 2, gcd(14,2,x) <br> <br>- Do gcd(14,2,x) <br>v=2 == 0 => False <br>v=2 != 0 => True, Y = 14 mod 2 = 0, gcd(2,0,x) <br> <br>- Do gcd(2,0,x) <br>v=0 == 0 => True => <u>Answer = 2</u>

-- Aug 25 In-Class Exercise
Scheme: gcd(14, 30), 30 != 0 -> gcd(30, 14), 30%14 = 2 -> gcd(14, 2), 14%2 = 0 -> gcd(2, 0), since v = 0, we return 2.
Prolog: gcd(14, 30, U), 30 != 0 -> gcd(14, 30, X), 30 != 0, Y = 14, and gcd(30, 14, X) -> gcd(30, 14, U), 14 != 0 -> gcd(30, 14, X), 14 != 0, Y = 2, and gcd(14, 2, X) -> gcd(14, 2, U), 2 != 0 -> gcd(14, 2, X), 2 != 0, Y = 0, and gcd(2, 0, X) -> gcd(2, 0, U), 0 == 0, U = 2, so we return 2.
(Edited: 2021-08-25)
Scheme: gcd(14, 30), 30 != 0 -> gcd(30, 14), 30%14 = 2 -> gcd(14, 2), 14%2 = 0 -> gcd(2, 0), since v = 0, we return 2. Prolog: gcd(14, 30, U), 30 != 0 -> gcd(14, 30, X), 30 != 0, Y = 14, and gcd(30, 14, X) -> gcd(30, 14, U), 14 != 0 -> gcd(30, 14, X), 14 != 0, Y = 2, and gcd(14, 2, X) -> gcd(14, 2, U), 2 != 0 -> gcd(14, 2, X), 2 != 0, Y = 0, and gcd(2, 0, X) -> gcd(2, 0, U), 0 == 0, U = 2, so we return 2.

-- Aug 25 In-Class Exercise
Scheme
	GCD(30, 14)
	30 % 14 = 2 which != 0, continue..
	GCD(14, 2)
	14 % 2 = 0
	GCD(2, 0)
	V == 0
	Therfore the GCD = 2.
	Prolog
	GCD(U, V, X)
	GCD(30, 14, X):- 30 % 14 == X, V = U, V = X
	GCD(14, 2, X):- 14 % 2 == X, since X == 0
	GCD = V
	GCD = 2
Scheme GCD(30, 14) 30 % 14 = 2 which != 0, continue.. GCD(14, 2) 14 % 2 = 0 GCD(2, 0) V == 0 Therfore the GCD = 2. Prolog GCD(U, V, X) GCD(30, 14, X):- 30 % 14 == X, V = U, V = X GCD(14, 2, X):- 14 % 2 == X, since X == 0 GCD = V GCD = 2

-- Aug 25 In-Class Exercise
Resource Description for 20210826_102419.jpg
((resource:20210826_102419.jpg|Resource Description for 20210826_102419.jpg))
2021-08-26

User Icon
-- Aug 25 In-Class Exercise
Scheme: (define (gcd u v) (if (= v 0) u (gcd v (modulo u v))))
(gcd 14 30) v not equal to 0
(gcd 30 14%30)
(gcd 30 14) v not equal to 0
(gcd 14 30%14)
(gcd 14 2) v not equal to 0
(gcd 2 14%2)
(gcd 2 0) v is not equal to 0
v is equal to 0
result is 2
Prolog
gcd(U, V, U) :- V = 0.
gcd(U,V, X) :- not (V =0), Y is U mod V, gcd (V,Y,X)
gcd(14, 30, X) V not equal to 0
gcd(30, 14%30, X)
gcd(30, 14, X) V not equal to 0
gcd(14, 30%14, X)
gcd(14, 2, X) V is not equal to 0
gcd(2, 14%2, X)
gcd(2, 0, X) V is equal to 0
result is 2
(Edited: 2021-08-26)
Scheme: (define (gcd u v) (if (= v 0) u (gcd v (modulo u v)))) (gcd 14 30) v not equal to 0 (gcd 30 14%30) (gcd 30 14) v not equal to 0 (gcd 14 30%14) (gcd 14 2) v not equal to 0 (gcd 2 14%2) (gcd 2 0) v is not equal to 0 v is equal to 0 result is 2 Prolog gcd(U, V, U) :- V = 0. gcd(U,V, X) :- not (V =0), Y is U mod V, gcd (V,Y,X) gcd(14, 30, X) V not equal to 0 gcd(30, 14%30, X) gcd(30, 14, X) V not equal to 0 gcd(14, 30%14, X) gcd(14, 2, X) V is not equal to 0 gcd(2, 14%2, X) gcd(2, 0, X) V is equal to 0 result is 2

-- Aug 25 In-Class Exercise
Scheme:
(gcd 14, 30) 30 != 0 (gcd 30, 14) (gcd 30, 14) 14 != 0 (gcd 14, 2) (gcd 14, 2) 2 != 0 (gcd 2, 0) (gcd 2, 0) 0 = 0 return 2
Prolog:
gcd(14, 30, U) 30 != 0 Y is 14 gcd(30, 14, X) gcd(30, 14, X) 14 != 0 Y is 2 gcd(14, 2, X) gcd(14, 2, X) 2 != 0 Y is 0 gcd(2, 0, X) gcd(2, 0, X) 0 = 0 result is 2
Scheme: (gcd 14, 30) 30 != 0 (gcd 30, 14) (gcd 30, 14) 14 != 0 (gcd 14, 2) (gcd 14, 2) 2 != 0 (gcd 2, 0) (gcd 2, 0) 0 = 0 return 2 Prolog: gcd(14, 30, U) 30 != 0 Y is 14 gcd(30, 14, X) gcd(30, 14, X) 14 != 0 Y is 2 gcd(14, 2, X) gcd(14, 2, X) 2 != 0 Y is 0 gcd(2, 0, X) gcd(2, 0, X) 0 = 0 result is 2
[ Next ]
X