■カプレカーのアルゴリズム(その23)

 数字が大きい順に並んでいる4桁の数の,順序をひっくり返した数を作り,最初の数から引く.

 9≧a≧b≧c≧d≧0

[1](1000a+100b+10c+d)−(1000d+100c+10b+a)=1000(a−d)+100(b−c)+10(c−b)+(d−a)

=999(a−d)+99(b−c)

=99(10a−10d+b−c)

1回の操作で99の倍数になる。

=1000A+100B+10C+D

9≧a>b>c>d≧0(どの2つの数字も同じでないなら)

A=a-d

B=b-1-c

C=10+c-1-b=9+c-b

D=10+d-a

(A,B,C,D)=(a,b,c,d),・・・,(d,c,b,a)・・・24通り

このなかで

A=a-d=b

B=b-1-c=d

C=10+c-1-b=9+c-b=a

D=10+d-a=c

だけが9≧a≧b≧c≧d≧0を満たす。a=7,b=6,c=4,d=1→A=6,B=1:C=7,D=4

===================================

しかし、24通りの連立方程式を解く必要はないと思われる。

A=a-d=bかc

B=b-1-c=dかa

C=10+c-1-b=9+c-b=aかd

D=10+d-a=cかb・・・4通りに絞られる

残りの3通りは

A=a-d=b

B=b-1-c=a

C=10+c-1-b=9+c-b=d

D=10+d-a=c

A=a-d=c

B=b-1-c=a

C=10+c-1-b=9+c-b=d

D=10+d-a=d

A=a-d=c

B=b-1-c=d

C=10+c-1-b=9+c-b=a

D=10+d-a=d

===================================