ただの思い出です。 今夜がチャレンジ 3 の提出締め切りです。
これは少し混乱するため、おそらく明確にする価値があります。 両方の関数 (および両方の場合)追加ビッグ) は、異なる長さと符号の数値を処理できる必要があります。 これをテストしてみます。 ボーナスのスピードとサイズポイントを決定するときは、同じ長さの数値を使用します。
ドン
昨夜、あなたのチャレンジの説明をもう一度読みましたが、要件について明確に説明されていると思います。私の質問は無視していただいて結構です。ごめんなさい!
-デイブ
私の質問に答えて - 3 番目の例を読みました - これは次のことを示唆しています(私)つまり、n1 リスト内のすべての数値が同じ桁数を持つとは想定できません。また、 (ii) n1 リストに負の数が含まれている可能性があります。おそらくその時は(iii) 2 つの数値 n1 と n2 の場合、それらの一方または両方が負になる可能性はありますか?
おそらく、私が述べた3つの点を明確にすることができます。 ありがとう。
数値のリストを追加する場合、各数値が同じ長さであると仮定できますか、それともテストする必要がありますか? (つまり、一般的なケースを処理する必要があるのか、それとも説明したテスト シナリオだけを処理する必要があるのか?)
先月のチャレンジでは、オーバーフロー エラーによってさらに複雑な問題が発生する可能性がある状況を避ける必要がありました。 実際、Miller-Rabin ベースのべき乗剰余演算のアルゴリズムは、プライムですルーチンは、この問題を回避するために作成されます。 プログラミング言語に関係なく、必ずこの問題に遭遇することになります。
オーバーフロー エラーは、結果を表すために使用できるビット数を超えるビットを必要とする操作を実行しようとすると発生します。 これは、大きな整数を扱うときによく発生しますが、これに限定されるわけではありません。 たとえば、次の例を試してください。
//Example 1
x = 9007199254740992;
For(i=1,i<=10,i++,Print(x+i));
x = 9007199254740992;
For(i=1,i<=10,i++,Print(x-i));
//Example 2
n1 = 9007199254740999;
n2 = 1;
Print(n1-n2);
2 53は最大の整数ですJMPオーバーフローが発生する前に表現できます。 浮動小数点表現のわかりやすい説明は次のとおりです。 (JMP の数値はすべて浮動小数点です)。 今月の課題では、JMP の整数表現をオーバーフローさせる数値の加算と減算の方法を考え出すことを期待します。 2 つの関数を作成する
- 引き算ビッグ( n1 、 n2 ) どこn1そしてn2どちらもテキスト形式の整数 (正、負、または 0) です。 テキスト形式で値を返します。
- 追加ビッグ( n1 、< n2 >)どこで
n1 – テキスト形式の整数、またはn2は空で、テキスト形式の整数 (正、負、または 0) のリストです。
n2 – テキスト形式の整数
テキスト形式で値を返します。
例
引き算ビッグ(“9007199254740999”, “9007199254740998”) は「1」を返します
追加ビッグ(“9007199254740992”,“7”) は“9007199254740999”を返します
追加ビッグ({"9007199254740999","-1","11"}) は "9007199254741009" を返します
採点
- ~のバージョンで 5 ポイント追加ビッグこれにより、1) 最大 1000 桁の 2 つの数値を 30 秒以内に加算でき、2) 最大 100 個の 100 桁の数値を含むリストの合計を 30 秒以内に求めることができます。 パート 1) は、10 個の異なる数値セットを使用してテストされます。 各数値の桁数は必ずしも同じであるとは限りません。 すべての提出には同じ 10 個のセットが使用されます。
- 追加3点引き算ビッグ(x – y) (x と y は最大 1000 桁の数値) を 30 秒以内に計算する必要があります。 10 個の異なる数値セットが使用されます。 各数値の桁数は必ずしも同じであるとは限りません。 すべての提出には同じ 10 個のセットが使用されます。
- 3ボーナスポイント追加ビッグ最大(桁数)を正しく加算できる提出物n1そしてn2同じ長さで、5 秒未満です。 (2点で2点nd 、3 に対して 1 rd )
- 3ボーナスポイント追加ビッグ5 秒以内に最も多くの 1,000 桁の数字を正確に加算できる提出物 (2 点で 2 点) nd 、3で1ポイントrd )。
- 提出物が JMP スタッフメンバーによる提出物と同じかそれよりも速い場合は、それぞれ 3 ポイントが追加されます。
提出期限は、6 月 15 日月曜日、東部 (米国) 時間午後 11 時 59 分です。 幸運を!