- ベストアンサー
n進法への変形の仕方についての質問です
10進法で63とあらわされる数を他の進法で表すと (1)63=1・2^5+1・2^4+1・2^3+1・2^1+1と変形できるので2進法では111111 (2)63=2・5^2+2・5^1+3と変形できるので5進法では223 …とありますが、この途中の式はどのようにしてこの形にするのでしょうか? 途中式への変形の仕方がわかりません どなたかお願いします…
- みんなの回答 (11)
- 専門家の回答
質問者が選んだベストアンサー
asd0pse様、こんにちわ 皆様がおっしゃっている通り、またasd0pse様が理解している通り 「元の数をnで割り、商を更にnで割り という作業を、nで割ることができなくなるまで繰り返す。」 この作業を1つずつ式にすることで、回答になりますでしょうか。 63を5進数で表記 63 = 12×5 + 3 ← 「63を5で割って、商12、余3を得る」を式化 = ((2×5)+2)×5 + 3 ← 「商12を5で割って、商2、余2を得る」を式化 = 2×5×5 + 2×5 + 3 ← それ以上の除算はできないので、カッコを外す作業開始 = 2×5^2 + 2×5^1 + 3 ← 記述式の完成 63を2進数で表記 63 = 31×2 + 1 ← 「63を2で割って、商31、余1を得る」を式化 = ((15×2)+1)×2 + 1 ← 「商31をさらに2で割って、商15、余1を得る」を式化 = (((7×2)+1)×2+1)×2 + 1 ← 「商15をさらに2で割って、商7、余1を得る」を式化 = ((((3×2)+1)×2+1)×2)+1)×2 + 1 ← 「商7をさらに2で割って、商3、余1を得る」を式化 = (((((1×2)+1)×2+1)×2+1)×2)+1)×2 + 1 ← 「商3をさらに2で割って、商1、余1」を式化 = ((((1×2)+1)×2+1)×2+1)×2^2 + 1×2^1 + 1 ← それ以上の除算はできないので、(一番外側の)カッコを外す作業開始 = (((1×2)+1)×2+1)×2^3 + 1×2^2 + 1×2^1 + 1 ← 次のカッコを外す作業 = ((1×2)+1)×2^4 + 1×2^3 + 1×2^2 + 1×2^1 + 1 ← 次のカッコを外す作業 = 1×2^5 + 1×2^4 + 1×2^3 + 1×2^2 + 1×2^1 + 1 ← 最後のカッコを外して、記述式の完成
その他の回答 (10)
- rnakamra
- ベストアンサー率59% (761/1282)
#4のものです。 十進数の場合での表記方法をちゃんと書いているでしょ。 与えられた非負の整数をXとするとXの十進表記は次の様に得られる。 >(1)X(0)=X,k=0とする。 >(2)X(k)を10で割ったときの商の整数部分をX(k+1),余りをA(k)とする。 >(3)X(k+1)≠0であればkの値を1増やし(2)に戻る。X(k+1)=0であれば(4)に進む。 >(4)Xの十進表記は >X=Σ[m:0~k]A(m)*10^m >となります。 この X=Σ[m:0~k]A(m)*10^m こそが質問にある途中の式なのです。n進数なら10の代わりにnを入れればよいのです。 ではなぜこのように書けるのか、考えて見ましょう。 1234という十進数を考えて見ます。 (2)のステップを1回でやめて見ると A(0)=4,X(1)=123 となります。 これは 1234÷10=123…4 ですが、これを変形すると 1234=123×10+4 (※1) となります。 さらにもう一段ステップを進めると A(1)=3,X(2)=12 となりますが、これは X(1)=123=12×10+3 を意味します。これを(※1)に入れると 1234=123×10+4=(12×10+3)×10+4 (※2) となります。ここではあえて括弧を外さないでおいておきます。 さらにもう一段進めると A(2)=2,X(3)=1 同様に 1234=((1×10+2)×10+3)×10+4 (※3) このように括弧の中の式がさらに○×10+△の形になっていくわけです。 ではこの括弧を外していきます。内側から外していきましょう。 1234=((1×10+2)×10+3)×10+4=(1×10^2+2×10+3)×10+4=1×10^3+2×10^2+3×10+4 というように展開できるのです。 これはn進数であろうが全く同様に出来ます。 m桁の数であれば括弧が(m-2)個入れ子になっている形になるのです。 最後によけいかも知れませんが一言。 やはり、この程度ことがわかっていないようならn進数のことをわかっていないとしかいえません。表層的な理解でわかった、などといわないほうがよい。 変な慢心は真の理解への妨げにしかなりません。 もちろん、私が全てを理解しているわけでもありません。n進数の更なる真相など私には全くわかりません。
- 麻野 なぎ(@AsanoNagi)
- ベストアンサー率45% (763/1670)
> 私が質問したいのは63(10)→223(2) > とする「表し方」ではなく、途中式の「変形の仕方」なんです もしかしたら、5進数の 223 が、2 * 2^3 + 2 * 2^1 + 3 と、「変形される」のがわからないと意味なのでしょうか? 10進数の63を 2 * 2^3 + 2 * 2^1 + 3 と変形するのは、確かにちょっと敷居は高いですが、逆の変形は、n 進数の定義そのものと言えます。 たとえば、10進数の 1234 は、1 * 1000 + 2 * 100 + 3 * 10 + 4 です。 言い換えれば、10進数の 1234 は、1 * 10^3 + 2 * 10^2 + 3 * 10^1 + 4 * 10^0 です。 さらに言い換えれば、 n 進数の 1234 は、 1 * n^3 + 2 * n^2 + 3 * n^1 + 4 * n^0 です。 と言うわけで、n 進数の abcd というのは、a * n^3 + b * n^2 + c * n^1 + d * n^0 を略記したものです。
お礼
1回目のご回答で合っています、ありがとうございました! (しかも今回直接関係なかったですが223(2)は223(5)の打ち間違いでした、すみません…) たとえば、5で割っていくって言っても、 「63=2*5^2+2*5+1」となるのに途中の「2*5^2」はどうやって出すのだろう、ということが聞きたかったのです; そしてあなたが1回目でおっしゃっているように、たいていの人は答えが出ればいいのでここは気にしないのでしょう(という意味ですよね?) 私はこれを”解答まで至る途中式の段階”だととらえ、「変形の仕方」という言葉で表しました。 たぶんこれまでの回答者さんとは「変形の仕方」という”言葉自体のとらえ方”が違ったのだろうと思います。 だから捕捉でそれを伝えようとしていたのですが他の方が私を「理解したつもり」とおっしゃってるのと同様に、その方々も「変形の仕方」という”私が使っている言葉”を「理解したつもり」だったのではないでしょうか? そう考えると日本語ってすごく難しいですね。 この一連のやりとりで、n進法の問題以外にも勉強になった気がします。
- mister_moonlight
- ベストアンサー率41% (502/1210)
一般では理解できても(=理解しているつもりでも)、個別に適用できない。 つまり、それが“判っていない”証拠なんだが、それを察して、ごちゃごちゃ言わずに具体的に示してやれば良い。 回答者も 余計な書き込みをするな。あっ、私もだ。。。。。。w
- misawajp
- ベストアンサー率24% (918/3743)
n進法は「判っていると強がっていますが、理解されていません 理解していれば、各回答で質問者言うところの変形はわかります、それが判らないと強調していることはn進法が理解できていないことに気づくべきです そしてもう一度学習することです(思い込みを捨てることができれば、すぐに理解できるでしょう)
- 麻野 なぎ(@AsanoNagi)
- ベストアンサー率45% (763/1670)
おそらく、「途中の計算」は、次の授業で出てくると思います。 というか……。 実際、この段階で一度つまずく人は多いです。 たとえば、5進数の223は、十進数に直すと、63になるというのは、案外理解しやすいのですが、じゃ、どうやったら、63を5進数で表せるかというのは、ちょっと取っつきが悪いです。 言い換えると、そこを気にしない人の割合の方が多いのです。 ただ、ある意味で「10進数も完全には理解できていない」というのは、それはそれで、正しいのです。 この質問が出るということは、n進数というのが出てきたばかりでしょうから。 また、10進数の理解といっても、プログラミングの問題で、12345 を一桁ずつ切り出せといっても、諸学者にとってはそこそこハードルが高いのも事実で、普段使い慣れているものの、「構造」なんかは、なかなか理解できないものです。 というわけで、直接の回答ではありませんでした。失礼しました。 と、ここまで書いてきて、ちょっと状況が違うようなので。 > 私が質問したいのは63(10)→223(2) > とする「表し方」ではなく、途中式の「変形の仕方」なんです; まず、既に回答で説明されている、「割りつつ余りを逆順に並べる」というのが、「変形のしかた」そのものです。 63(10) = a + b * 5 + c * 5^2 とおいて、a, b, c を求める計算ですが、 両辺を5で割ると 63÷5 = 12 余り 3 a + b * 5 + c * 5^2 ÷ 5 = b + c * 5 余り a つまり、a = 3 引き続き、 12 = b + c * 5 の両辺を5で割ると、 12÷5 = 2 余り 2 b + c * 5 ÷ 5 = c 余り b つまり、b = 2 (余り) ついでに、c = 2 (こっちは商) です。 で、付け加えると、こういう表し方は本当に一通りしかないのかというと、一通りしかないことは証明できます。
- mister_moonlight
- ベストアンサー率41% (502/1210)
[10進数から5進数への計算] 10進数の数字を5進数に変換するには 10進数を5で割る。 この答えをまた5で割る。これを繰り返し、商が0になった時点で、余りを逆順に並び替えたものが5進数になる。 63を5進法で、やってみよう。63を5で割ると、商が12で余りが3。12を5で割ると、商が2で余りが2。2を5で割ると、商が0で余りが2。 従って、63=2・5^2+2・5^1+3と変形できるので5進法では223 これは、2進法でも同じ。自分でやってみたら良い。
- rnakamra
- ベストアンサー率59% (761/1282)
真の意味での"n進数"が理解できていないのでしょう。多分十進数も完全にわかっていないのでしょう。 十進数の"63"はどのような数なのでしょうか。 それがきちんと説明できれば2進数も5進数も全く同様に出来ます。 63では桁数が小さいの"263"という数を考えます。 何か適当なものが263個あったとすると、小学1,2年生なら次の様に数えると思います。 ・まず10個ずつの塊に分けていく 10個の塊が26個、3個だけ余る。余った"3"が一の位になる。 ・次に10個の塊をさらに10ずつに分ける 10個を10セットまとめたものが2個でき、6個の塊が余る。余った"6"が十の位になる。 ・次に10個の塊10セットのまとまりを10個ずつに分ける。 数が足りない。2個のセットが余る。余った"2"が百の位になる。 これを言い換えると 与えられた非負の整数をXとするとXの十進表記は次の様に得られる。 (1)X(0)=X,k=0とする。 (2)X(k)を10で割ったときの商の整数部分をX(k+1),余りをA(k)とする。 (3)X(k+1)≠0であればkの値を1増やし(2)に戻る。X(k+1)=0であれば(4)に進む。 (4)Xの十進表記は X=Σ[m:0~k]A(m)*10^m となります。 要するにn進数であらわすには、nで割り余りを得る、商をさらにnで割余りを得る、これを繰り返せばよいのです。
補足
>要するにn進数であらわすには、nで割り余りを得る、商をさらにnで割余りを得る、これを繰り返せばよいのです あの、それはわかるんです; 私が質問したいのは63(10)→223(2) とする「表し方」ではなく、途中式の「変形の仕方」なんです; n進法の表し方はnで割っていった余りで表せるのは分かっています 舌足らずな質問文なのは申し訳なかったのですがみなさんもう少し質問文をよく読んでいただきたかったです…;;
- misawajp
- ベストアンサー率24% (918/3743)
>(1)63=1・2^5+1・2^4+1・2^3+1・2^1+1と変形できるので2進法では111111 が間違っていることにお気づきですか (1)63=1・2^5+1・2^4+1・2^3+1・2^2+1・2^1+1・2^0 (2)63=2・5^2+2・5^1+3・5^0 とすれば お判りかと (1)は 2^m で2進数 (2)は 5^m で5進数 3^m で表されるようにすれば3進数 60^mならば60進数(時間や緯度経度の分 秒) n進数Xは aを0~n-1の範囲の数として X= a*n^m+a*n^(m-1)+a*n^(m-2)・・・+a*n^0 で表せます
補足
1・2^0=1なので計算が省かれているだけで間違いではありませんよね? 「n進法の表し方」ではなく「変形の仕方」がわからないのです;
- f272
- ベストアンサー率46% (8469/18132)
(1) 63=(((((1)*2+1)*2+1)*2+1)*2+1)*2+1 (2) 63=((2)*5+2)*5+3 と変形すれば分かるか?
補足
「表し方」ではなく「変形の仕方」にフォーカスしていただきありがとうございます! ただ、どうしてそう変形したのか、というそこまでの説明をいただけると嬉しいです(> <)
- Tacosan
- ベストアンサー率23% (3656/15482)
「n進数」は理解できていますか?
補足
さすがにそれはできています…
お礼
はい、これが知りたかったのです!! #2さんもこの形で書いてくださいましたが、詳しく解説していただき、本当にありがとうございます(> <) 打つの大変だったと思います… 感謝・感謝です(> <) なるほど、途中で実はこんな計算が起きていたのですか… 数式で表そうとするとすごい式になるんですね; やっともやもやが晴れました♪ 重ねてお礼申し上げます☆
補足
失礼しました、#2さんだけでなく、#6さんもです!