
突然の質問失礼いたします。
現在私は学校で引き戻し法・引き放し法といった除算のアルゴリズムについて学んでいるのですが、そのうちの引き放し法について質問したく投稿しました。
引き放し法について自分で勉強しようと思い、いろいろ調べていたのですが、商と余りを出す引き放し法は見つかっても、小数点以下にわたってまで商を求める引き放し法がまったく見つかりませんでした。
(例えば5÷2=2あまり1と結果を出すのではなく、5÷2=2.5と結果を出す引き放し法のことです。)
少数点以下にわたってまで商を求める引き放し法は商と余りを出す引き放し法で表現できるのでしょうか?
もしよろしければ教えていただけると幸いです。また、参考にすべきインターネットサイト等もあれば教えていただけると助かります。
No.4ベストアンサー
- 回答日時:
★30÷8と考えます。
>3÷8などと言った被除数<除数の場合は同じ方法でやってみると
>解がでない気がするのですが・・・。
↑
解けます。
・3÷8 は商が 0 となりますがこの時は 3×10=30 から 8 を割ればよい。
よって
(1)3÷8=0
(2)30÷8=3あまり6
と計算します。0、3あまり6 と出ますから 0.3 となるわけです。
・あまりの 6 は計算を続けて
(3)6÷8=0
(4)60÷8=7あまり4
となります。ここで 0.3 に 7 を追加して 0.37 となります。
・あまりの 4 は計算を続けて
(5)4÷8=0
(6)40÷8=5あまり0
となります。ここで 0.37 に 5 を追加して 0.375 となります。
・割り切れたので 3÷8=0.375 となります。
このように『被除数<除数』の場合は10倍して繰り返します。
それでは宿題として3÷800はどうなるでしょうか?
出来たら補足などに書き込んでみて下さい。
・以上。
この回答への補足
解答してみました。
(1)3÷800=0
(2)30÷1800=0
(3)300÷800=0
(4)3000÷800=3あまり600 0.003
(5)600÷800=0
(6)6000÷800=7あまり400 0.0037
(7)400÷800=0
(8)4000÷800=5 0.00375
よって解は0.00375。でしょうか。大変わかりやすい回答ありがとうございます!
大変図々しい気はするのですが、どうしてもプログラミングが前に進まないのでもう一度だけ補足をさせてください!
10進法によるアルゴリズムは容易に出来たのですが、後日の追加条件でプログラミングがアセンブリ言語を用いなければならなくなった為、2進法で行わないといけないみたいで・・・。
10進法による引き放し法は上記のように簡単に出来ることがわかりましたが、2進法でも1÷17といった除数>被除数の割り算を引き放し法で行うことは可能なのでしょうか?
10進法の方法を応用してみようと考えてみましたが、10進法では10倍を行っている箇所が2進法では表現しにくい気がしまして・・・。
ちなみに除数<被除数の割り算は検索をかけたらいろんな場所で出てきました。
たびたびな質問で大変申し訳御座いません。

No.6
- 回答日時:
既に詳しい回答が付いてますが、プログラムするのに、アルゴリズムのわかりやすそうな参考サイトは、以下かな?
2進数の場合
http://jndb.pc.mycom.co.jp/column/architecture/0 …
10進数 タイガー計算機での解説、小数点以下も、計算機の桁の許す限り計算可能
http://www.wizforest.com/gear/tiger/
おまけ タイガー計算機の歴史 大正時代から日本はこんなすごいもの作ってたんですね。
http://www.tiger-inc.co.jp/temawashi/temawashi.h …
下のふたつのサイトは見たことありますね。一番上のサイトは大変詳しくのっているので是非参考にさせていただきます。
わざわざ紹介していただき本当にありがとうございました!
この引きはなし、引き戻し法を学んで、いつも何気なく使っている割算がこんなに手順を踏んだ計算を行っているのには驚きでした。プログラミングとしての意味だけでなく、数学的な意味でも大変深い学問ですね。本当に興味を持ちました。
No.5
- 回答日時:
★アドバイス
>2進法でも1÷17といった除数>被除数の割り算を引き放し法で行うことは可能なのでしょうか?
↑
可能です。というよりは出来ます。
>10進法の方法を応用してみようと考えてみましたが、
>10進法では10倍を行っている箇所が2進法では表現しにくい気がしまして・・・。
↑
10進法で10を掛けてから引いています。
2進法なら2を掛けてから引けば良いだけです。
つまり基数(n進数のn)の数を掛けるわけです。
・なお2進法で2を掛けるという事は、左に1ビットシフトすることと等しいですが分かりますか?
そもそも10進法で左に1桁シフトするとは、10を掛ける事になるのです。
>ちなみに除数<被除数の割り算は検索をかけたらいろんな場所で出てきました。
↑
でしょうね。
定番だから。
いや基本だから。
・以上。ちなみに『3÷800』の解答は完璧です。2進法も同じ要領で0を増やせば簡単です。
なるほど・・・。毎回ながら大変詳しい解説ありがとうございます。
左へのシフト作業は引き戻し法にて使用したので理解できます。
おかげで大体のアルゴリズムをかけました。
本当にありがとうございました!
No.3
- 回答日時:
★5÷2=2.5の場合。
・商の 2 が出るのは分かりますよね。
そしたら割り切れるまで 10 を掛けて計算します。
(1)5 -2 -2 = 2あまり1
(2)あまり1に10倍して 10 から引き始める
(3)10 -2 -2 -2 -2 -2 = 5あまり0
ここで終了する。
このとき (2) で 10 倍しているので (3) で出た 5 は 10 で割ります。
すると 0.5 です。商の 2 と小数部の 0.5 を足して 2.5 となります。
★7÷3=2.333…の場合。
・商の 2 は分かりますよね。
(1)7 -3 -3 = 2あまり1
(2)あまり1に10倍して 10 から引き始める
(3)10 -3 -3 -3 = 3あまり1
(4)(2)と同じ方法を繰り返す
この7÷3は永遠にあまりが 1 となるため循環小数となります。
よって無限に計算し続けます。
適当に計算を終了する小数点の桁数を決めて打ち切ります。
まとめ:
・基本は割り切れるまで余りに 10 倍して引き算を繰り返します。
循環小数も考慮して適当に計算を終了させます。
例えば小数点以下 100 桁で終了とか。
・以上。
この回答への補足
すいません、また問題が発生しまして・・・。
5÷2や7÷3などの被除数>除数の場合は上記の方法で解けるのですが、3÷8などと言った被除数<除数の場合は同じ方法でやってみると解がでない気がするのですが・・・。
このような場合も上記の方法で解けるのでしょうか?それとも別の方法があるのでしょうか?
度々すいません。
なるほど!!
思わずうなってしまうような解答本当にありがとうございます。
プログラムを作成する場合は余りが生じた場合と生じない場合で分岐させて、分岐した場所で10倍した後に順に引いていくという作業をやればいいってことになるのでしょうかね。
頭の中でアルゴリズムが浮かんできたので早速書いてみます。
本当にありがとうございました!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(保険) 投資目的の保険商品について。受取時にかかる税金について保険会社に質問しました。 商品を端的に説明する 3 2023/08/08 20:33
- その他(悩み相談・人生相談) この時期の湿気について 部屋にプラスチック?の引き出しがあるのですが大切な物を入れています。 この時 3 2023/06/18 22:46
- iPhone(アイフォーン) iPhoneの機種変更するときのデータの引き継ぎについて 3 2022/07/06 18:29
- ヤフオク! 落札者の削除について 4 2023/05/22 14:37
- 子供 何故引き篭もりニートを放っておくんですか? 親は、子供を何だと思ってますか? 誰かに助けを求めたり、 11 2023/02/05 15:39
- その他(資産運用・投資) 資産運用について 5 2023/08/23 10:33
- 会社・職場 意地くその悪い上司の対処法 1 2022/04/26 12:17
- その他(教育・科学・学問) 小学生の算数の商について 3 2023/03/06 14:11
- 会社・職場 意地くそが悪い上司 3 2022/04/26 13:47
- 統計学 直線の傾き(回帰係数)から相関係数を計算できるのでしょうか? 2 2022/09/16 19:28
このQ&Aを見た人はこんなQ&Aも見ています
-
ショボ短歌会
ひどい短歌を詠んでください。
-
ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
ゴリラ向け動画配信サイト「ウホウホ動画」にありがちなことを教えて下さい。
-
性格いい人が優勝
できるだけ性格いい人になって回答をお願いします。
-
スタッフと宿泊客が全員斜め上を行くホテルのレビュー
スタッフも宿泊客も、一流を通り越して全員斜め上なホテルのレビューにありがちな内容を教えて下さい
-
人生で一番お金がなかったとき
人生で一番お金がなかったときって、どんなときでしたか?
-
二進数の除算引き戻し法について 引き戻し法でマイナスが出てきてからの計算の仕方がいまいちわかりません
計算機科学
-
2進数の割り算が分かりません・・・。
数学
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
VBAの再計算が反映されない件に...
-
チェックデジット計算できる関...
-
VB6で正確なミリ秒を計測したい...
-
グラフの描き方
-
CとFORTRANの計算速度はどちら...
-
C# 計算処理中に実行中ウィン...
-
VBAで電卓を作成する
-
タクシー料金の問題です
-
VB6.0で時間の計算方法
-
人時生産性をExcelで計算したい
-
論理式
-
EXCELなどで「返す」という表現
-
排他的論理和 BCC(水平パリテ...
-
モジュロ
-
fortranの練習問題
-
骨折リスク評価のFRAXについて...
-
matlabで計算終了
-
【fortran77】データ行数のカウ...
-
階乗のマクロ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
排他的論理和 BCC(水平パリテ...
-
VBAで関数をつくる
-
VBAの再計算が反映されない件に...
-
EXCELなどで「返す」という表現
-
CとFORTRANの計算速度はどちら...
-
変化させるセルが変化しない
-
エクセルで特定のセルのみを任...
-
matlabで計算終了
-
駅間の距離を求め運賃計算するJ...
-
バッチファイルでウインドウを...
-
C言語についてです。 再帰を使...
-
趣味で「乗換案内」みたいなソ...
-
VBAで電卓を作成する
-
60進数の四則計算
-
モジュラス103の計算とは何でし...
-
Visual C++でdebugとreleaseで...
-
時間(ミリ秒を含む)の引き算
-
加速度から変位の変換について
-
VBAで一時的にオーバーフローを...
おすすめ情報