No.2ベストアンサー
- 回答日時:
CPUでとのことでしたらハードウェアに乗算器、除算器というアーキテクチャがありますのでそれを活用するになると思います。
乗算器、除算器がない場合は乗数、除数の前提条件により
組むべきアルゴリズムが変わります。
乗数、除数が不定値のときは加算、減算で行います。
(例 5×3だと5を0に3回足す)
乗数、除数が固定値のときはビットシフト+加算、減算で行います。
(例 5×3だと5を1回左シフトして5を足す)
以外とこうすれば効率がいいという方法はありません。
「意外とこうすれば効率がいいという方法はありません。」
そうなんですか。それを知れただけでとてもうれしいと思いました。
自分もそういうアルゴリズムだろうなとは思っていたんですが。
日々考えている方がいるのですかね。
No.4
- 回答日時:
シフトと加算で行います。
例えば 10x5 を計算する時はまずそれぞれを2進数で表しておいて
A=1010 B= 0101 K = AxB として
最初に
K = 00000000 とする。
sterp1:
Bの最下位が1なので K = K+A = 00001010 とする。
Aを左シフトして A=10100
Bを右シフトして B=010
step2:
Bの最下位が0なので K はそのまま
Aを左シフトして A=101000
Bを右シフトして B=01
sterp3:
Bの最下位が1なので K = K+A = 00110010 とする。
Aを左シフトして A=1010000
Bを右シフトして B=0
sterp4:
Bの最下位が0なので K はそのまま
かける数が4ビットなのでこれで計算の終わり。
答えは16進で0x32、10進では50となります。
ありがとうございます。
うむ~、ちょっとイメージしづらかったですね。
でもほかとの回答がやや違うような気がするので興味を持ちました。
ありがとうございます。
No.3
- 回答日時:
結局のところ、一番近い2のべき乗までシフトして、過不足を引いたり足したりするしか方法はありません。
小さい数どうしの乗算の場合は、下手に考えるよりもループで1つずつ足していった方が速い場合だってありえます。桁数が大きくなると、一番近い2のべき乗からでもけっこう遠くなるので、その場合は同様にまた一番近い2のべき乗を…という考え方になります。100倍だと、64+32+4などですね。数によっては、わざとオーバーさせて引いたり、端数調整を途中で行って最後に一回シフトする方が速くなる場合もあり得るので、そこには工夫の余地がありますけど、逆を言えばそれくらいしかアルゴリズムらしきものが介在するところはないと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 競馬 競馬の枠連の計算方法を教えてください。 4 2022/10/30 04:57
- 数学 法則名ありますか? 2 2022/10/09 16:21
- 統計学 【数学者または統計学者に質問です】競艇で2連単が的中する確率の1位は1-2の16%で、 2 2023/06/13 21:18
- 数学 最小公倍数と最大公約数の求め方で画像のような計算法があったのですが、理解できません。 なぜ2つ数24 4 2022/04/10 13:37
- 化学 化学PHの質問です! この問題の解は5番ですけど 4番はなぜ間違えたかわかりません Aの電離度を考え 1 2023/05/16 10:41
- 中学校 中3の数学の問題の四季と計算の利用という分野の問題がいくつか分かりません 助けてくださいm(_ _) 2 2022/05/05 21:23
- その他(教育・科学・学問) 採用予定数76人、受験者数169人 最終合格率、72人で合格倍率は、2.3倍 です。この試験って難し 2 2023/07/01 21:12
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- 数学 3の倍数かつ5の倍数は15の倍数 2の倍数かつ3の倍数は6の倍数 なぜ「15や6の倍数」と分かるのか 4 2023/03/07 23:31
- FX・外国為替取引 これって、元手5500万円ってことになるのでしょうか? 1 2023/02/04 18:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
どの文章が自然でしょうか? シ...
-
シフトがLINEで出す系のバイト...
-
パートのシフトが週1しか入りま...
-
エクセルでシフトをランダムで...
-
店長にLINEを既読無視されました
-
シフト表から名前が消えてたら...
-
私は4月から大学生です。バイト...
-
シフト表の順番に意味はあるの...
-
シフト表に名前ない...
-
今日バイトを辞める事を電話で...
-
バイトのシフト書き間違え 変更
-
エクセルのシフト表を簡単にGoo...
-
シフト表を自動でカレンダーに...
-
バイトのシフトが急激に減りま...
-
ドンキでオリエンテーションを...
-
バイトを辞めると言ったら次回...
-
好きな人は上司です。
-
コンビニバイトのドタキャン
-
遅刻・早退時間の関数
-
ダイソーでアルバイトしている...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
私は4月から大学生です。バイト...
-
どの文章が自然でしょうか? シ...
-
シフトがLINEで出す系のバイト...
-
店長にLINEを既読無視されました
-
パートのシフトが週1しか入りま...
-
バイトのシフトが急激に減りま...
-
エクセルでシフトをランダムで...
-
今日バイトを辞める事を電話で...
-
ドンキでオリエンテーションを...
-
売れないコンカフェ嬢
-
バイトの出勤日数を勘違いされ...
-
Accessのクエリで2つのフィー...
-
シフト表から名前が消えてたら...
-
私のシフトの要求はわがままで...
-
バイトのシフト 確認方法
-
シフト希望時間より長く入れさ...
-
エクセルでセルを挿入するとき...
-
バイトのシフト書き間違え 変更
-
バイトのシフトを勝手に増やさ...
-
仕事 シフト変更 連絡
おすすめ情報