Location : Home > Languages > Perl > Package Title : Math::NoCarry |
![]() |
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 を返す。
現在のところ報告されていない。
ソースコードは 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 本体と同等の条件で再配布してもよい。
![]() |
Updated : 2006/10/06 |