Location : Home > Languages > Perl > Package
Title : Math::NoCarry
Toolbox Logo

名称

 Math::NoCarry - 繰り上がりなし計算


概要

use Math::NoCarry;

my $sum        = Math::NoCarry::add( 123, 456 );
my $difference = Math::NoCarry::subtract( 123, 456 );
my $product    = Math::NoCarry::multiply( 123, 456 );

説明

 次の桁への繰り上がりのない計算を扱う。
 たとえば、8 と 4 は通常に足せば 12 であるが、これでは繰り上がりがある。もし繰り上がりを認めなければ答えは 2 となる。各桁の計算に10を法とする処理を適用したものと考えればよい。

  1234
+ 5678
------
  6802

 乗算の場合は、各桁の計算に10を法とする値を記述していけばよい。

    123
  x 456
  -----
      8   6 x 3
     2    6 x 2
    6     6 x 1

     5    5 x 3
    0     5 x 2
   5      5 x 1

    2     4 x 3
   8      4 x 2
+ 4       4 x 1
-------
  43878

 乗算と減算は加算の一種として処置できる。
 繰り上がりなし計算は結合側を満たすし、可換でもある。

.

関数

 本モジュールはいかなる関数もエクスポートしていない。

multiply( A, B )

 A と B の繰り上がりなしの積を返す。引数として ( A x 1 ) が渡された場合には A を返す。

add( A, B )

 A と B の繰り上がりなしの和を返す。引数として ( A x 0 ) が渡された場合には A を返す。負の値が渡されたときには false を返す。


バグ

 現在のところ報告されていない。


To Do


ソースの入手

 ソースコードは SourceForge プロジェクトにおいて最新バージョン及び過去のバージョンが CVS で入手可能である。

 http://sourceforge.net/projects/brian-d-foy/

 何かの理由で私がいなくなっても、プロジェクトの誰かが適切に導いてくれるだろう。


著者

 Brian D Foy, <bdfoy@cpan.org>


著作権

 Copyright 2002-2006, brian d foy, All Rights Reserved.

 Perl 本体と同等の条件で再配布してもよい。

Toolbox Logo
Updated : 2006/10/06