Download as pdf or txt
Download as pdf or txt
You are on page 1of 13

bbQ+BiBp2 PT2`iBQMb

S`HH2H S`Q;`KKBM; BM a+H


oBFiQ` EmM+F
bbQ+BiBp2 QT2`iBQM

PT2`iBQM f: (A,A) => A Bb bbQ+BiBp2 Bz 7Q` 2p2`v t, v, x,

7(t, 7(v, x)) = 7(7(t, v), x)

*QMb2[m2M+2,

! irQ 2tT`2bbBQMb rBi? bK2 HBbi Q7 QT2`M/b +QMM2+i2/ rBi? ⊗- #mi


/Bz2`2Mi T`2Mi?2b2b 2pHmi2 iQ i?2 bK2 `2bmHi
! `2/m+2 QM Mv i`22 rBi? i?Bb HBbi Q7 QT2`M/b ;Bp2b i?2 bK2 `2bmHi
bbQ+BiBp2 QT2`iBQM

PT2`iBQM f: (A,A) => A Bb bbQ+BiBp2 Bz 7Q` 2p2`v t, v, x,

7(t, 7(v, x)) = 7(7(t, v), x)

*QMb2[m2M+2,

! irQ 2tT`2bbBQMb rBi? bK2 HBbi Q7 QT2`M/b +QMM2+i2/ rBi? ⊗- #mi


/Bz2`2Mi T`2Mi?2b2b 2pHmi2 iQ i?2 bK2 `2bmHi
! `2/m+2 QM Mv i`22 rBi? i?Bb HBbi Q7 QT2`M/b ;Bp2b i?2 bK2 `2bmHi

q?B+? QT2`iBQMb `2 bbQ+BiBp2\


 /Bz2`2Mi T`QT2`iv, +QKKmiiBpBiv

PT2`iBQM f: (A,A) => A Bb +QKKmiiBp2 Bz 7Q` 2p2`v t, v,

7(t, v) = 7(v, t)

h?2`2 `2 QT2`iBQMb i?i `2 bbQ+BiBp2 #mi MQi +QKKmiiBp2


h?2`2 `2 QT2`iBQMb i?i `2 +QKKmiiBp2 #mi MQi bbQ+BiBp2
6Q` +Q``2+iM2bb Q7 reduce- r2 M22/ UDmbiV bbQ+BiBpBiv
1tKTH2b Q7 QT2`iBQMb i?i `2 #Qi? bbQ+BiBp2 M/ +QKKmiiBp2

JMv QT2`iBQMb 7`QK Ki?,

! //BiBQM M/ KmHiBTHB+iBQM Q7 Ki?2KiB+H BMi2;2`b UBigIntV M/ Q7


2t+i `iBQMH MmK#2`b U;Bp2M b- 2X;X- TB`b Q7 BigIntbV
! //BiBQM M/ KmHiBTHB+iBQM KQ/mHQ  TQbBiBp2 BMi2;2` U2X;X 232 V-
BM+Hm/BM; i?2 mbmH `Bi?K2iB+ QM jk@#Bi Int Q` e9@#Bi Long pHm2b
! mMBQM- BMi2`b2+iBQM- M/ bvKK2i`B+ /Bz2`2M+2 Q7 b2ib
! mMBQM Q7 #;b UKmHiBb2ibV i?i T`2b2`p2b /mTHB+i2 2H2K2Mib
! #QQH2M QT2`iBQMb , ||- 2t+HmbBp2 Q`
! //BiBQM M/ KmHiBTHB+iBQM Q7 TQHvMQKBHb
! //BiBQM Q7 p2+iQ`b
! //BiBQM Q7 Ki`B+2b Q7 }t2/ /BK2MbBQM
lbBM; bmK, ``v MQ`K

Pm` ``v MQ`K 2tKTH2 +QKTmi2b }`bi,

i−1
!
⌊|B |T ⌋
B=b

q?B+? +QK#BMiBQM Q7 QT2`iBQMb /Q2b bmK Q7 TQr2`b +Q``2bTQM/ iQ\


lbBM; bmK, ``v MQ`K

Pm` ``v MQ`K 2tKTH2 +QKTmi2b }`bi,

i−1
!
⌊|B |T ⌋
B=b

q?B+? +QK#BMiBQM Q7 QT2`iBQMb /Q2b bmK Q7 TQr2`b +Q``2bTQM/ iQ\

reduce(map(a, power(abs(_), p)), _ + _)

>2`2 + Bb i?2 bbQ+BiBp2 QT2`iBQM Q7 reduce


map +M #2 +QK#BM2/ rBi? reduce iQ pQB/ BMi2`K2/Bi2 +QHH2+iBQMb
1tKTH2b Q7 QT2`iBQMb i?i `2 bbQ+BiBp2 #mi MQi +QKKmiiBp2

h?2b2 2tKTH2b BHHmbi`i2 i?i bbQ+BiBpBiv /Q2b MQi BKTHv +QKKmiiBpBiv,

! +QM+i2MiBQM UTT2M/V Q7 HBbib, (x ++ y) ++ z == x ++ (y ++ z)


! +QM+i2MiBQM Q7 Stringb Ur?B+? +M #2 pB2r2/ b HBbib Q7 CharV
! Ki`Bt KmHiBTHB+iBQM " 7Q` Ki`B+2b  M/ " Q7 +QKTiB#H2
/BK2MbBQMb
! +QKTQbBiBQM Q7 `2HiBQMb ` ⊙ b = {(, +) | ∃#.(, #) ∈ ` ∧ (#, +) ∈ b}
! +QKTQbBiBQM Q7 7mM+iBQMb (7 ◦ ;)(t) = 7(;(t))

"2+mb2 i?2v `2 bbQ+BiBp2- reduce biBHH ;Bp2b i?2 bK2 `2bmHiX
JMv QT2`iBQMb `2 +QKKmiiBp2 #mi MQi bbQ+BiBp2

h?Bb 7mM+iBQM Bb HbQ +QKKmiiBp2,

7(t, v) = t2 + v2

AM/22/ 7(t, v) = t2 + v2 = v2 + t2 = 7(v, t) "mi

7(7(t, v), x) = (t2 + v2 )2 + x2


7(t, 7(v, x)) = t2 + (v2 + x2 )2

h?2b2 `2 TQHvMQKBHb Q7 /Bz2`2Mi ;`Qri? `i2b rBi? `2bT2+i iQ /Bz2`2Mi


p`B#H2b M/ `2 2bBHv b22M iQ #2 /Bz2`2Mi 7Q` KMv t, v, xX
S`QpBM; +QKKmiiBpBiv HQM2 /Q2b MQi T`Qp2 bbQ+BiBpBiv M/ /Q2b MQi
;m`Mi22 i?i i?2 `2bmHi Q7 reduce Bb i?2 bK2 b 2X;X reduceLeft M/
reduceRightX
bbQ+BiBpBiv Bb MQi T`2b2`p2/ #v KTTBM;

AM ;2M2`H- B7 7(t, v) Bb +QKKmiiBp2 M/ ?1 (x), ?2 (x) `2 `#Bi``v


7mM+iBQMb- i?2M Mv 7mM+iBQM /2}M2/ #v

;(t, v) = ?2 (7(?1 (t), ?1 (v)))

Bb 2[mH iQ ?2 (7(?1 (v), ?2 (t))) = ;(v, t)- bQ Bi Bb +QKKmiiBp2- #mi Bi Q7i2M


HQb2b bbQ+BiBpBiv 2p2M B7 7 rb bbQ+BiBp2 iQ bi`i rBi?X
S`2pBQmb 2tKTH2 rb M BMbiM+2 Q7 i?Bb 7Q` ?1 (t) = ?2 (t) = t2 X
q?2M +QK#BMBM; M/ QTiBKBxBM; reduce M/ map BMpQ+iBQMb- r2 M22/ iQ
#2 +`27mH i?i QT2`iBQMb ;Bp2M iQ reduce `2KBM bbQ+BiBp2X
6HQiBM; TQBMi //BiBQM Bb +QKKmiiBp2 #mi MQi bbQ+BiBp2

scala> val e = 1e-200


e: Double = 1.0E-200
scala> val x = 1e200
x: Double = 1.0E200
scala> val mx = -x
mx: Double = -1.0E200

scala> (x + mx) + e
res2: Double = 1.0E-200
scala> x + (mx + e)
res3: Double = 0.0
scala> (x + mx) + e == x + (mx + e)
res4: Boolean = false
6HQiBM; TQBMi KmHiBTHB+iBQM Bb +QKKmiiBp2 #mi MQi bbQ+BiBp2

scala> val e = 1e-200


e: Double = 1.0E-200

scala> val x = 1e200


x: Double = 1.0E200

scala> (e*x)*x
res0: Double = 1.0E200

scala> e*(x*x)
res1: Double = Infinity

scala> (e*x)*x == e*(x*x)


res2: Boolean = false
JFBM; M QT2`iBQM +QKKmiiBp2 Bb 2bv

amTTQb2 r2 ?p2  #BM`v QT2`iBQM g M/  bi`B+i iQiH Q`/2`BM; less


U2X;X H2tB+Q;`T?B+H Q`/2`BM; Q7 #Bi `2T`2b2MiiBQMbVX
h?2M i?Bb QT2`iBQM Bb +QKKmiiBp2,

def f(x: A, y: A) = if (less(y,x)) g(y,x) else g(x,y)

AM/22/ f(x,y)==f(y,x) #2+mb2,

! B7 x==y i?2M #Qi? bB/2b 2[mH g(x,x)


! B7 less(y,x) i?2M H27i bB/2b Bb g(y,x) M/ Bi Bb MQi less(x,y) bQ `B;?i
bB/2 Bb HbQ g(y,x)
! B7 less(x,y) i?2M Bi Bb MQi less(y,x) bQ H27i bB/2b Bb g(x,y) M/ `B;?i
bB/2 Bb HbQ g(x,y)

q2 FMQr Q7 MQ bm+? 2{+B2Mi i`B+F 7Q` bbQ+BiBpBiv

You might also like