Template‐ノート:進法
表示
mod
[編集]ウィキペディアの mod は信用できません。
{{#expr: 12345678901234567890 mod 10000000000000000}}
→ -1065172474984448- (正しくは 5678901234567890)
このため下式がうまく表示されません。
{{進法 | 10 | 12345678901234567890 }}
→ 1234 (現時点での結果)
対策を考えます。 - TAKASUGI Shinji (会話) 2008年3月14日 (金) 13:50 (UTC)
- ウィキペディアが倍精度小数 (精度 53 ビット) を使っていることを確認します。
{{#expr: (134217728 * 67108864 - 1) mod 2}}
→ 1- 253 - 1 は桁落ちしない。
{{#expr: (134217728 * 134217728 - 1) mod 2}}
→ 0- 254 - 1 は桁落ちする。
- 次に十進数を正しく読めることを確認します。
{{#expr: (134217728 * 67108864) - 9007199254740991}}
→ 1- 253 - 1 = 9007199254740991 は桁落ちしない。
{{#expr: (134217728 * 67108864) - 9007199254740992}}
→ 0- 253 = 9007199254740992 は桁落ちしない。
{{#expr: (134217728 * 67108864) - 9007199254740993}}
→ 0- 253 + 1 = 9007199254740993 は桁落ちする。
- 計算途中は浮動小数点のままであることを確認します。
{{#expr: 9007199254740992 - (9007199254740992 * 9007199254740992 - 9007199254740992 * 99999) / 9007199254740992 }}
→ 99999
- - TAKASUGI Shinji (会話) 2008年3月14日 (金) 14:56 (UTC)
底 n の時に桁落ちしない最大の np は、p = 53 log 2 / log n で求まります。
|
|
|
|
|
現在の {{進法}} の仕様では、32 桁を最大とし、16 桁に区切って計算していますが、これだと底が 10 以上の時に桁落ちします。このため、底が 10 以上の時は 16 桁を最大とし、8 桁に区切って計算することにします。 - TAKASUGI Shinji (会話) 2008年3月18日 (火) 14:02 (UTC)