# 2 สมการ
#กำหนดให้ สมการ x = a (mod b) และ x = c (mod d)
a=3 #<-----ใส่ a ตัวแปรฝั่งซ้ายสมการที่นำมาลบออก [ตัวที่ 1]
b=7 #<-----ใส่ b ตัวแปร อินเวอร์ส(ยกกำลัง -1) [ตัวที่ 2]
c=4 #<-----ใส่ c ตัวแปรฝั่งขวาที่เป็นตัวตั้ง [ตัวที่ 3]
d=9 #<----- ใส่ d ตัวแปร Modulo [ตัวที่ 4] แล้วกด "Enter" 1 ครั้ง เป็นอันเสร็จพิธี
f=(c-a) # อย่าไปสนใจ! การคิดแบบกาก ๆ ข้างล่างนี้ ลอกเลย ๆ จบ!^^
R=IntegerModRing(d)
x=R(b)^(-1)
y=R(f)
z=R(x)*R(f)
n=gcd(b,d)
m=crt(a,c,b,d)
print "จาก โจทย์ x = ",a,"(mod ",b,") และ x = ",c,"(mod",d,")"
print "Check gcd(" , b , "," , d , " ) = ", n ;
# if n == 1:
# print "OK!!" , "\n"
# else:
# print " ไม่มีผลเฉลย เนื่องจาก gcd(" , b , "," , d , " ) = ", n , " != 1 " , "\n"
print "จาก x = ",a,"(mod ",b,") จะได้ x = ",a," + ",b,"y ....(1)"
print "ได้ ",a," + ",b,"y = ",c,"(mod",d,")"
print "y = ( ",b,"^(-1) )(",c,"-",a,") (mod",d,")"
print " = ( ",x," )( ",y," )(mod",d,")"
print " = " , z ,"(mod",d,")"
print "แทนค่า y ใน สมการ (1) ได้ "
print"x = ",a," + (",b,")(",z,") = ",m
print"x = ",m," (mod ( " ,b,"*",d,"))"
print"x = ",m," (mod ",b*d,") ...###"
print "Check Answer = " , m ," OK? \n"
|
|
จาก โจทย์ x = 3 (mod 7 ) และ x = 4 (mod 9 )
Check gcd( 7 , 9 ) = 1
จาก x = 3 (mod 7 ) จะได้ x = 3 + 7 y ....(1)
ได้ 3 + 7 y = 4 (mod 9 )
y = ( 7 ^(-1) )( 4 - 3 ) (mod 9 )
= ( 4 )( 1 )(mod 9 )
= 4 (mod 9 )
แทนค่า y ใน สมการ (1) ได้
x = 3 + ( 7 )( 4 ) = 31
x = 31 (mod ( 7 * 9 ))
x = 31 (mod 63 ) ...###
Check Answer = 31 OK?
จาก โจทย์ x = 3 (mod 7 ) และ x = 4 (mod 9 )
Check gcd( 7 , 9 ) = 1
จาก x = 3 (mod 7 ) จะได้ x = 3 + 7 y ....(1)
ได้ 3 + 7 y = 4 (mod 9 )
y = ( 7 ^(-1) )( 4 - 3 ) (mod 9 )
= ( 4 )( 1 )(mod 9 )
= 4 (mod 9 )
แทนค่า y ใน สมการ (1) ได้
x = 3 + ( 7 )( 4 ) = 31
x = 31 (mod ( 7 * 9 ))
x = 31 (mod 63 ) ...###
Check Answer = 31 OK?
|