このアプリケーションは、離散数学として分離された数学の分野に関連する特定の機能を提供するように設計されています。このアプリケーションには、いくつかのアルゴリズム、数論と暗号化の一部、帰納法と再帰法、選択された高度な計算方法の実装が含まれています。 「離散数学とその応用」 (McGraw-Hill Education - Kenneth H. Rosen) のトピックを 1 つのアプリケーションでカバーすることは不可能であり、このアプリケーション自体にそのようなタスクは設定されていません。
アプリケーションのアルゴリズムには、線形および二分探索のアルゴリズム、バブル法および反転法によるソート、接続ペアと重複しないペアの決定 (たとえば、講義などの始まりと終わりのあるイベント) が含まれます。
バブル ソートは最も単純な並べ替えアルゴリズムの 1 つですが、最も効率的なアルゴリズムの 1 つではありません。隣接する要素を連続的に比較し、順序が間違っている場合は入れ替えることによって、リストを昇順に並べます。バブル ソートを実行するには、基本的な操作、つまりリストの先頭から開始して、フル パスで大きい要素をそれに続く小さい要素と交換します。並べ替えが完了するまでこの手順を繰り返します。
挿入ソートでは、2 番目の要素と最初の要素を比較し、最初の要素を超えない場合は最初の要素の前に挿入し、最初の要素を超える場合は最初の要素の後に挿入します。この時点では、最初の 2 つの要素は正しい順序になっています。次に、3 番目の要素が最初の要素と比較され、最初の要素より大きい場合は 2 番目の要素と比較されます。最初の 3 つの要素の正しい位置に挿入されます。この手順は、以下の要素をリストの最後まで同様に続けます。
各ステップで「最良」と思われる選択を行うアルゴリズムは、貪欲アルゴリズムと呼ばれます。これらは、接続されたペアと重複しないペアの 2 つのアルゴリズムです。
重複しないペアを使用して、2 つのサイト間のルートを検索できます。
数値変換および暗号化アクティビティには以下が含まれます。 - 数値をある数値体系から別の数値体系に変換する。そしてその他。
このアプリケーションは、ある記数法から別の記数法に数値を変換するとき (数値変換アクティビティ)、異なる記数系の整数 (基数 2、3、4、5、6、7、8、9、16 に含まれます) の算術演算 (算術演算) に実際に使用できます。算術演算とさまざまな数体系への変換は、オペランドの長さによる制限なしで整数 (いわゆる BigInteger) に対して実行されます。
因数分解 (因数分解アクティビティ) には、数値の素因数の決定、2 つの数値の最大公約数の決定などが含まれます。
ビット単位の長さによって決定される、BigInteger(擬似乱数) タイプの擬似乱数の生成。
ラテン文字(26文字)によるテキストの暗号化(暗号化アクティビティ)、キリル文字(30文字)によるテキストの暗号化、およびRSA方式およびAES方式を使用した暗号化。すべての暗号化方法で、暗号化されたファイルをデバイスのダウンロード ディレクトリに保存できます。その名前には AppDiscret というテキストが含まれます。
暗号化では、過剰な量のメモリを使用せずに、n 乗を m で割った b の余りを効率的に見つけることができることが重要です。このアプリには、高速べき乗剰余演算の機能( Fast Modular Exponentiation Activity) もあります。
アプリケーションにおける数学的帰納法には、最初の N 個の整数の合計など (数学的帰納法アクティビティ) が含まれます。
高度な計算機能 (Counting Activity) には以下が含まれます。 - 一定時間後に増殖した細菌の数を計算します。 - フィボナッチ数; - Towers of Hanoi ゲームでのディスクの移動数。そしてその他。
ほとんどすべてのアクティビティには、計算された特性を明らかにする助けがあります。