目次

中国の剰余定理(Bshell)

 算術で解を求めるために、シェルスクリプトを書いて
 みます。

 3で割ると2余り、5で割ると3余り、7で割ると2余る数は何か

 これが、『孫子算経』に記載されている、整数の剰余に
 関する定理に関係するそう。

 1000未満の整数で、剰余系の例題に示された整数値を
 シェルスクリプトで求めてみます。

 結果は、次のようになりました。

Hit <= 23 : 2 3 2
Hit <= 128 : 2 3 2
Hit <= 233 : 2 3 2
Hit <= 338 : 2 3 2
Hit <= 443 : 2 3 2
Hit <= 548 : 2 3 2
Hit <= 653 : 2 3 2
Hit <= 758 : 2 3 2
Hit <= 863 : 2 3 2
Hit <= 968 : 2 3 2

 条件を満たす整数値は、次の10個だとわかります。

 23
 128
 233
 338
 443
 548
 653
 758
 863
 968

 1から999までの整数値を表示するシェルスクリプトを
 書いてみると、以下。

!# /bin/bash

# initialize
i=1
last=1000
# repeat
while [ $i -lt $last ]
do
  # show
  echo $i
  # increment
  let i++
done

 剰余系で与えられた条件の判定を加えます。

!# /bin/bash
# initialize
i=1
last=1000
# calculate
let r1=$i%3
let r2=$i%5
let r3=$i%7
# repeat
while [ $i -lt $last ]
do
  # judge
  if [ $r1 -eq 2 -a $r2 -eq 3 -a $r3 -eq 2 ] ; then
    # show
    echo "Hit <=" $i ":" $r1 $r2 $r3
  fi
  # increment
  let i++
  # calculate
  let r1=$i%3
  let r2=$i%5
  let r3=$i%7
done

 Bshellでは、変数の値を使うときに、$をつけるので
 少し注意が必要ですが、慣れれば何ともなくなります。

目次

inserted by FC2 system