合同式2

アバター
GRAM
記事: 164
登録日時: 14年前
住所: 大阪

合同式2

投稿記事 by GRAM » 13年前

えっと。昨日に引き続き。
modを扱うクラスを作りたいわけだが、まずそういうクラスは次のようなことができなくちゃならない。

①加減乗、累乗
②operator == (!=) による比較。
③整数型へのキャスト
そして重要なのが、
④型安全性

なんでかっていうと、 3 (mod 4 )と 5(mod 6)を足し合わせて
3+5 ≡ ?という計算ができてはならないから。
異なる数を「法」とする(法とはmodの後ろの数)2式は、なんら比較も計算もできなくするべきだ。
これは実行時エラーではなく、コンパイル時のエラーとしたい。

さらにもう一つやりたいことがある。

それは、計算時にどの型を使うかを判断すること。
たとえばクラスmodがあって、その法nが、nクラスが、内部でunsigned long long を使うのはあまりにあほらしい。




・・・こんなことがたぶんできるだろうなぁ~とおもった昨日の晩でした。
しかし、今書いてて思ったけれど、高々この程度のことをするのにTMPは必要ないなぁ~って思い始めた

beatle
記事: 1281
登録日時: 13年前

Re: 合同式2

投稿記事 by beatle » 13年前

是非TMPで!

アバター
MoNoQLoREATOR
記事: 284
登録日時: 14年前

Re: 合同式2

投稿記事 by MoNoQLoREATOR » 13年前

「普通の数値」同士として計算した後、その結果を代入するmodクラスの型や法に従って変換する方法では駄目なのですか?

beatle
記事: 1281
登録日時: 13年前

Re: 合同式2

投稿記事 by beatle » 13年前

普通の数値として計算すると,計算途中にオーバーフローする危険性があるんです.GRAMさんはそれを回避したいと言っています.

アバター
MoNoQLoREATOR
記事: 284
登録日時: 14年前

Re: 合同式2

投稿記事 by MoNoQLoREATOR » 13年前

なるほどそういうことでしたか