パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

住基ネット稼動初日もトラブル続発」記事へのコメント

  • スレタイトルとはあまり関係ないが、自宅に住民票コードが届いたので、
    さっそく下のような下手糞Perlプログラムでチェックしてみた。
    当たり前だが、家族全員Goodだった。

    しかしこの通知票、下からライトあてたら開封しないで外からコード
    読めるじゃん…。いいのかこんなんで >武蔵野市役所

    $code = shift;
    die "Too short: $code\n" unless (length($code) == 11);
    @v = split(//, $code);
    $sum = $v[9]*2 + $v[8]*3 + $v[7]*4 + $v[6]*5 + $v[5]*6
              + $v[4]*7 + $v[3]*2 + $v[2]*3 + $v[1]*4 + $v[0]*5;
    $chk =
    • by Anonymous Coward on 2002年08月06日 18時13分 (#140770)
      これのハミング距離って、どうなってるんですか?
      親コメント
      • by Shidho (5649) on 2002年08月06日 18時41分 (#140792) 日記
        正確にはかけ算の妥当性を調べないといけないだろうけど、
        ぱっと見では1ケタ増やしてるだけだから
        1ケタの誤り検出可能、0桁の修正可能っつうことで
        ハミング距離1ってことでOK?
        (10進数と2進数では同じ距離にはならないんだっけ?)
        親コメント
        • by cloudy (1160) on 2002年08月06日 21時14分 (#140874)
          元のチェックディジット計算法 [srad.jp]を見てもらうとわかりますが、 重みつき和を11で割った余りが0のときと1のときに、両方とも最終桁が0にマッピングされてしまいますので、最後の桁が0の人は、1桁間違いが検出できない可能性があります。

          例えば、00000000000と00000000060とか、12345678920と12345678970 はそれぞれ一桁しか違っていませんが、両方とも正しいコードです。

          コードの最終桁が0の人は、他の人よりほんの少しだけ余計に注意深くないといけませんね(普通は名前も書くから問題はないだろうが)。

          親コメント

Stay hungry, Stay foolish. -- Steven Paul Jobs

処理中...