数学の計算機
モジュロ計算機


モジュロ計算機

モジュロ計算機は、2つの有理/無理数の正/負の数の除算の余りを見つけます。モジュラスを手動で見つける方法を見つけることもできます。

モジュロ

1

計算にエラーがありました。

目次

  1. 弾性率計算機なしの計算
  2. モジュロ原理のクロックデモンストレーション
  3. モジュロの使用
    1. 偶数と奇数の決定
    2. 単位変換
    3. うるう年の決定
  4. 乱数ジェネレータ
    1. 暗号化手法
  5. 結論

モジュロ計算機

モジュロ演算は、除算演算の剰余を求める方法です。モジュロの詳細は、剰余を整数として返すことです。

3人の子供を持つとよいでしょう。あなたはそれらのうちの20個を含むキャンディーの箱を買います。あなたはすべてのキャンディーをあなたの子供の間で均等かつ公平に分けたいと思います。そして、自分で残したキャンディーを切ったり壊したりすることなく食べること。あなたの子供はまだ学校にいます。したがって、最初に分割後に残っている残りを決定し、キャンディーの数を食べることができます。

これは、モジュロ演算子を使用できる場合です。また、% sign or modとして表す こともできます。数値が小さい操作の場合は、頭の中で計算を実行できます。大きな数を扱う場合は、モジュロ計算機を使用する方が快適です。

方程式は次のように表すことができます:

配当=(商×除数)+余り

私たちの場合:

  • 配当金は20 (キャンディーの合計額)です;
  • 除数は3 (子供の数)です;
  • 商は6 (各子供のキャンディーの数)です;
  • 残りは2 (自分で取ることができるキャンディーの数)です。

モジュロ演算を使用する場合は、次の形式で書き留めることができます:

x % y = r

または

x mod y = r

ここで、xは配当、yは除数、rはリマインダーです。

私たちの場合,

20 % 3 = 2

弾性率計算機なしの計算

例として特定のケースを取り上げましょう。

ワヤンはバリ島に住んでいて、6つの住宅ユニットを備えた小さなゲストハウスを建設しています。彼はバスルームをタイル張りにするつもりです。すでにホテルの建設を終えた隣人のゲデは、残りのタイルを購入するためにワヤンにかなりの割引を提供します。

隣人は倉庫にある15箱を数え、それぞれに4つのタイル (60 × 60 cm) と2つのタイルが別々に入っていました。つまり、合計62タイルです。そして、ゲデはすべてのタイルを一度に販売したいと考えています。

今、ワヤンは彼がこれらのタイルで舗装することができるバスルームの数を理解 する必要があります。そして、いくつのタイルが使用されたままになる可能性がありますか?

モジュラス演算子計算機なしで手動で弾性率を見つける方法は?

ワヤンはゲストハウスの標準的なバスルームのサイズを測定し、部屋ごとに約14枚のタイルが必要であることに気づきました。

手動計算をしましょう!

  1. 開始番号または配当を決定する. 私たちの場合、それは62、つまり隣人が提供 するタイルの数です。
  2. 除数を決定する. これは 14 で、標準的なバスルームの平均タイル数です。
  3. 配当を除数で割って、その結果を四捨五入して整数にする。 62 / 14 = 4.428571428571429 または 4. つまり、ワヤンはこのタイルを4つのバスルームに使うことができるのです。
  4. 除算の丸められた結果に除数を掛けます. そしてそれは4 × 14 = 56. これは、4つの部屋のタイルの数になります。
  5. 元の配当からこの乗算結果を差し引きます. それは62 - 56 = 6. これにより、ワヤンには6つのタイルが追加されます。

簡略化および短縮された方法で、この操作は次のように記述できます:

62 % 14 = 6

または

62 mod 14 = 6

ワヤンは、トリミングや誤解の場合に備えて、タイル作業のために約10%のタイルリザーブを取る必要があるため、これが良いオプションであると判断しました。そして、彼は地元の建築店で他の2つのバスルームのタイルを購入します。

mod計算機は、この結果をわずか数秒で提供できます。

モジュロ原理のクロックデモンストレーション

[モジュラー算術] と呼ばれる数学の一種は、巡回構造を扱います。これを表す 最も簡単な方法は、12サイクルのダイヤルです。数学者の場合、文字盤にはmod 12があります。

余りなしで251時間を日数で割ることができるかどうかを確認したい場合は、操作を適用できます

251 mod 24

結果は11なので、答えはノーです! 結果が0の場合にのみ [はい]と答えること が できます。

ダニエルはアトランタからマイアミまでバスに乗りたいと思っています。午後1時に出発し、道路には15時間かかります。彼が到着するのは何時ですか? それは

1 + 15 mod 12

これは4です。彼の場合、午前4時になります。

モジュロの使用

偶数と奇数の決定

剰余演算子の最も基本的な使用法の 1 つは、数値が偶数か奇数かを判断することです。これが可能なのは、x % 2 が常に 0 または 1 を返すためです。偶数は常に 2 で均等に分割されるため 0 を返しますが、奇数は常に余り 1 を返します。

プログラミングでモジュロを使用する最も一般的なケースは、アプリケーションでテーブルを印刷し、行の色を変更する場合です。水色と薄い灰色に色を付けたいので、モジュロをチェックして、偶数行か奇数行かを確認します。

単位変換

単位変換は、モジュロ演算の実用化の典型例である。これは通常、分、インチ、センチメートルなどの小さな単位を、時間、マイル、キロメートルなどの大きな単位に変換する場合に使用されます。このような状況では、小数または小数が必ずしも役立つとは限りません。

たとえば、373分単位の時間数を知りたい場合、6時間13分で表される結果は、6.21666666666666666667 時間よりも価値がある可能性があります。

標準除算 (最も近い整数に丸める)によって時間数が決定され、モジュロ演算を使用 して残りの分が考慮されます。時間、距離、圧力、エネルギー、またはデータ ストレージのいずれを扱う場合でも、この一般的なアプローチを使用して単位を変換できます。

うるう年の決定

モジュロ演算子を使用する別の例は、年がうるう年であるかどうかを確認することです。

うるう年は、太陽暦に余分な日を含む暦年です。うるう年の余分な日は2月29日です。

紀元前45年1月1日、ローマの独裁者ガイウスユリウスシーザーは、アレクサンドリアの天文学者によってローマで開発されたカレンダーを紹介しました。カレンダーは、天文年が約365.25日 (365日6時間) であるという計算に基づいていました。 このカレンダーはユリウス暦と呼ばれていました。

6時間のシフトを平準化するために、シーザーはうるう年を導入しました。3年連続で、年間365日でした。そして毎年、4つの倍数で、2月に1日追加されました。

しかし、時間が経つにつれて、このルールだけでは十分ではないことがわかりました。

平均的な熱帯年 (2つの春分の間の時間) は、より正確には約365日と5時間49分 です。平年とユリウス暦年の差 (365日6時間) は約11分でした。したがって、約 128年後に は、これらの11分が合計で1日余分になる可能性があります。

蓄積されたエラーを補い、将来の同様のシフトを回避するために、教皇グレゴリウスXIIIは1582年にカレンダーを改革しました。彼はうるう年のための追加のルールを追加しました。うるう年はまだ4の倍数でしたが、100の倍数であったそれらの年については例外がありました。そのような年は、400で割り切れる場合にのみうるう年でした。 うるう年を決定するための規則は次のようになりました:

  • 数が400の倍数である年はうるう年です。
  • 合計が100の倍数である残りの年はうるう年ではありません(たとえば、1700、 1800、1900、2100、2200、2300 年);
  • 残りの年は4の倍数で、うるう年です。
  • 他のすべての年は飛躍ではありません。

したがって、1700、1800、および1900年は、100の倍数であり400の倍数ではないため、うるう年ではありません。1600 年と 2000 年は 400 の倍数であるため、うるう年です。

問題に戻りましょう。

私たちはそれを知っています:

  • 年番号mod 4 = 0、および年番号mod 100 ≠ 0の場合、うるう年です。
  • 年番号mod 400 = 0の場合、うるう年です -それ以外の場合は、うるう年ではありません。

単純なPythonスクリプトを使用すると、年がうるう年であるかどうかを知ることができます。このようになります:

year = int(input('Enter year: '))

if (year%4 == 0 and year%100 != 0) or (year%400 == 0) :

	print(year, "is a leap year.")

else:

	print(year, "is not a leap year.")

プログラミングにおけるモジュロ演算子の一般的なアプリケーションには、次のものがあります:

  • 何かが偶数か奇数かを判断する;
  • リスト内のN番目の各項目に対して特定の操作を実行する;
  • 範囲への数の制限;
  • 限られたオプション(円形アレイ)を回転させる;
  • 数値を反転する;
  • 線形データを行列に変換する;
  • 配列が互いのローテーションバージョンであるかどうかの判断;
  • ページネーション。

乱数ジェネレータ

モジュロマッチングは、コンピュータハードウェアや通信機器で制御番号を作成し、合同乱数ジェネレータなどの限られた範囲の乱数を取得するためによく使用されます。デリック・ヘンリー・レマーは1949年に線形合同法を提案した。

線形合同法は、次の式に従って機能します:

$$X_{n+1} = (a × X_n + c)\mod m$$

どこ:

  • m はモジュロです,
  • a は乗数です,
  • c は増分であり、
  • X₀ が初期値です

たとえば、m = 11, X₀ = 9, a = 9, c = 9, 次の一連の乱数が得られます:

9, 2, 5, 10, 0, 9, 2, 5, 10, 0, 9

暗号化手法

暗号学者はモジュロが大好きです。なぜなら、非常に大きな数値で使用すると、モジュロを使用して「一方向関数」と呼ばれるものを作成できるためです。これらの特殊関数を使用すると、一方向の何かを簡単に計算できますが、反対方向の計算はできません。

9が二乗の結果である場合、入力が3であったことがすぐにわかります。最初から最後まで目の前のプロセス全体を想像することができます。9がmod29の結果であると私があなたに言うならば、入力に何があるかを理解するのは難しいです。

暗号学者は、剰余との除算を使用して巨大な素数を生成し、暗号鍵を作成できるため、このアイデアを気に入っています。

結論

ストレージボックスにオブジェクトを均等に分散しようとしている場合でも、数値が別の数値で割り切れるかどうかを知っている場合でも、単に時間を計算しようとしている場合でも、モジュロは常に存在します。これらすべての場合において、剰余は除算演算の商と同じくらい重要です。

目前の問題は単純で直感的な場合があります。ただし、物事が複雑な場合は、オンラインで弾性率計算機を使用して解決策を見つけることをお勧めします。