2013年8月10日土曜日

Math Tool(Androidアプリ)

Androidアプリ:Math Tool
package:jp.blogspot.tsukinihinikeni.mathtool
対象:Android3.1+ ( HONEY COMB MR1以上)

Math Toolは手軽に剰余の計算(商と余りの計算)、既約分数の計算、素因数分解ができるツールです。
シンプルさと、どれだけ大きな数についてでも計算できるというのがウリです。(素因数分解には限界がありますが、それでもかなり大きな数まで計算出来ます。)

・アプリの概要

基本的な使い方
1.入力欄に数字を入力すると、自動的に素因数分解の結果が表示されます。



2.除数を入力すると、剰余計算の結果、既約分数が自動で表示されます。



3.C を押すと入力値がクリアされます。


入力値が大きな値の場合、素因数分解の結果が表示されるまでに若干の時間がかかる場合があります。


設定
Settings から、アプリの設定を変更できます。



・剰余計算 - 剰余計算表示
OFFにすると、剰余の計算・表示を行いません。

・剰余計算 - 負の数の剰余計算
初期設定では "余りは正値にする" になっています。
"余りは負値にする" を選んだ場合、負の数を入力した時の商と余りが、余りを0以下とするように計算されます。
具体的には
"余りは正値にする" → -7 ÷ 3 = -3 余り 2
"余りは負値にする" → -7 ÷ 3 = -2 余り -1
と計算されます。
どちらを選んでも、正の数の割り算については
7 ÷ 3 = 2 余り 1
になります。

・既約分数 - 既約分数表示
OFFにすると、既約分数の計算・表示を行いません。

・素因数分解 - 素因数分解表示
OFFにすると、素因数分解の計算・表示を行いません。

・素因数分解  - 素数リスト
素因数分解に使用する素数の範囲を指定します。
初期設定では1,229となっており、この時、小さい方から1,229番目までの素数(つまり、1万以下の素数)を使用して素因数分解を行います。そのため、1万より大きい素数同士の積については、その数が素数であるか合成数であるか判定できません。具体的には、
n < 1万×1万 で、nは1万以下の素数で割れない → nは素数
n > 1万×1万 で、nは1万以下の素数で割れない → nは素数か合成数か判定できない
としています。従って、入力した数が大きい場合、正確に"素因数"に分解できない場合があります。
この使用する素数の数(1,229)を変更するのがこの設定項目になります。何番目までの素数を使用するか入力して下さい。使用する素数の範囲を大きくすると正確に素数の判定ができる範囲が広がりますが、計算に時間がかかる場合があります。
使用する素数の数の最大値は78,498(100万以下の素数)です。

・その他 - 計算タイトルの表示
"タイトルを表示する" → 計算結果に、[剰余計算]、[既約分数]、[素因数分解]のタイトルが表示されます。
"タイトルを表示しない" → 計算結果に上記のタイトルが表示されません。
タイトルを表示する

タイトルを表示しない

・その他 - テーマ
画面のカラーを変更できます。
Holoは黒を基調とした画面、Holo.Lightは白を基調とした画面になります。

Holo

Holo.Light


・仕様

入力可能な数字
入力可能な数字の桁数に制限はありません。
商の計算など、基本的な部分については、BigIntegerクラス(http://developer.android.com/intl/ja/reference/java/math/BigInteger.html)を使用しています。

素因数分解
素因数分解については上記の通り、予め用意した素数リストで実際に割ってみて計算しています。そのため、素数リストの上限を超える大きな素数どうしの積については、素数か合成数かの判定をすることができません。
しかし、入力する数値自体に制限はないので、小さな素数どうしの積であれば大きな数についても素因数分解が可能です。例えば、54桁の数 808017424794512875886459904961710757005754368000000000 = 2^46 * 3^20 * 5^9 * 7^6 * 11^2 * 13^3 * 17 * 19 * 23 * 29 * 31 * 41 * 47 * 59 * 71 などは殆ど処理時間なく計算可能です。
また、素数と判定できた場合は「素数である可能性が高い数字」ではなく、「素数であることが確認できた数字」となります。


・その他

アプリのダウンロード(Google play)
https://play.google.com/store/apps/details?id=jp.blogspot.tsukinihinikeni.mathtool


連絡先
何かありましたら、この記事のコメント欄、あるいはメール( d.kondo.android@gmail.com )でお問い合わせください。

0 件のコメント:

コメントを投稿