いつもありがとうございます。

さて、午後のアルゴリズムの基数整列法の項ですが、整列の様子は理解できるのですが、流れ図がよく理解できません。お詳しい方、トレース等も含めてわかりやすく解説願えないでしょうか?

よろしくお願いいたします。

ちゃりお
-------------------------------------------------------------

【配列】423、121、312、231、232、253、312、337 [8件]
【説明】2次元配列の「山(山番号、山のデータ数)」(山番号=0~9、山のデータ数=1~件数)に分類して、元の配列「データ(n)」(n=1~件数)に統合する。
【出典】基本情報[午後]完全合格教本/福島宏訓著/新星出版社(P40-41)

【整列の様子】

1桁目の数字で分類:
1の山 2の山 3の山 7の山
 121 231 312 232 312 423 253 337
山を統合:
121 231 312 232 312 423 253 337

2桁目の数字で分類:
1の山 2の山 3の山 5の山
312 312 121 423 231 232 337 253
山を統合:
312 312 121 423 231 232 337 253

3桁目の数字で分類:
1の山 2の山 3の山 4の山
121 231 232 253 312 312 337 423
山を統合:
121 231 232 253 312 312 337 423

基数整列法について教えてください(後編につづく)

このQ&Aに関連する最新のQ&A

A 回答 (1件)

管理者より:


続きの質問があるのでそちらをご参照下さい

参考URL:http://www.okweb.ne.jp/kotaeru.php3?q=211606
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Q基数整列法について教えてください(後編)

基数整列法について教えてください(前編)の続きです。
長文につき1投稿では入りきらないため、2回にわけております。

回答はこちら(後編)のほうにお願いいたします。

ちゃりお
--------------------------------------------------------------------

【流れ図】
端子:開始

処理:3→桁数

ループ始端:桁ループ(桁数=1、桁数)


 ループ始端:山数クリア(山番号=0,9)
 │
 処理:0→山数(山番号)
 │
 ループ終端:山数クリア
 │
 │
 ループ始端:分類ループ(番号=1、件数)
 │
 処理:ユーザ関数(番号、桁)→山番号・・・桁の数字を山番号に設定
 │
 処理:山数(山番号)+1→山数(山番号)/ データ(番号)→山(山番号、山数(山番号))
 │
 ループ終端:分類ループ
 │
 │
 処理:0→番号
 │
 │
 ループ始端:統合ループ(山番号=0,9)
 │
 │
  ループ始端:転送ループ(数=1、山数(山番号))
  │
  処理:番号+1→番号/ 山(山番号、数)→データ(番号)
  │
  ループ終端:転送ループ
 │
 │
 ループ終端:統合ループ


ループ終端:桁ループ

端子:終了

関連URL: http://oshiete1.goo.ne.jp/kotaeru.php3?q=211604

基数整列法について教えてください(前編)の続きです。
長文につき1投稿では入りきらないため、2回にわけております。

回答はこちら(後編)のほうにお願いいたします。

ちゃりお
--------------------------------------------------------------------

【流れ図】
端子:開始

処理:3→桁数

ループ始端:桁ループ(桁数=1、桁数)


 ループ始端:山数クリア(山番号=0,9)
 │
 処理:0→山数(山番号)
 │
 ループ終端:山数クリア
 │
 │
 ループ始端:分類ル...続きを読む

Aベストアンサー

>整列の様子は理解できるのですが
ということなのでいきなり流れ図の説明からします

まず変数の使われかたから

データ(n):
 元々のデータが入っています
 整列後のデータもここに格納されます

山(山番号、山のデータ数):
 整列のためにデータを分類する場所です
 例えば、1桁目の数字で分類時の312は1桁目が2である数の3番目なので
 (いわば「2組の出席番号3番、312君」)
 
 山(2、3)=312
 
 となるわけです。

山番号:
 そのデータがどの山に入ればいいかを示す変数です

山数:
 それぞれの山にデータがいくつ入っているかを示しています
 つまり新しいデータを入れるときには
 
 山数(山番号)+1→山数(山番号)
 と、山数を一つ増やし
 
 データ(番号)→山(山番号、山数(山番号))
 と、そこにデータを入れればいいわけです

番号:
 データ(n)の何番目を処理中かを示す数です。



では流れ図を見ていきましょう

まず全体が
//////////////////////////////////////
処理:3→桁数

ループ始端:桁ループ(桁数=1、桁数)
//////////////////////////////////////
ループ終端:桁ループ
//////////////////////////////////////
の二つに挟まれています。
これは1桁目・2桁目・3桁目と同じ処理をしているだけです。


次にこの内部の先頭部分
////////////////////////////////////////////////////////////////
ループ始端:山数クリア(山番号=0,9)
 処理:0→山数(山番号)
ループ終端:山数クリア

ループ始端:分類ループ(番号=1、件数)
 処理:ユーザ関数(番号、桁)→山番号・・・桁の数字を山番号に設定
 処理:山数(山番号)+1→山数(山番号)
 処理:データ(番号)→山(山番号、山数(山番号))
ループ終端:分類ループ
////////////////////////////////////////////////////////////////
は、データ(n)に入っている数値を全て山に移し替える作業をしています。
山数クリアループは分類ループの前処理として存在します。
これは山数を0にする事により(実際にはデータが残っていたとしても)
山の内部を空にします。

分類ループは全データに対して同じ処理をするループです。
「全データに対し」
「まずユーザ関数でどの山に入ればいいかを求め」
「その山の定員を1増やし」
「最後尾に入れてやる」
「…」
と読んでください。


次に後半部分
/////////////////////////////////////////////////////////////
処理:0→番号

ループ始端:統合ループ(山番号=0,9)
 ループ始端:転送ループ(数=1、山数(山番号))
  処理:番号+1→番号
  処理:山(山番号、数)→データ(番号)
 ループ終端:転送ループ
ループ終端:統合ループ
//////////////////////////////////////////////////////////////
は、山の値を全てデータ(n)に戻す作業をします。
さっきと同じように番号を0にする事によってデータ(n)は空になりました。

こんどの6行は
「それぞれの山に対して」
「山の先頭から順番に」
「データ(n)の末尾の一個となりに」
「値を書き込んでいく」
「…」
「…」
と読んでください。

>整列の様子は理解できるのですが
ということなのでいきなり流れ図の説明からします

まず変数の使われかたから

データ(n):
 元々のデータが入っています
 整列後のデータもここに格納されます

山(山番号、山のデータ数):
 整列のためにデータを分類する場所です
 例えば、1桁目の数字で分類時の312は1桁目が2である数の3番目なので
 (いわば「2組の出席番号3番、312君」)
 
 山(2、3)=312
 
 となるわけです。

山番号:
 そのデータがどの山に入ればいいかを示す変...続きを読む

Q基数変換

(23,6)10進数→16進数にするのですが、何回やっても解答がでません。解答は、17,9です。詳しく説明お願いします。宜しくお願いします。

Aベストアンサー

10進→2進が既に変換できるようであれば
面倒ですが10進→2進→16進の方が分かりやすいかもしれません。

23.6(10進)→10111.1001...(2進)になります
 少数の計算方法を説明すると
 2進数の小数は、左から 2/1 4/1 8/1 16/1... という重みです。
 言い換えると 0.5 0.25 0.125 0.0625 ...
 よって0.6は 0.5+0.0625 が一番近いので .1001になります。
誤差が出てしまいますが、0.1未満なのでここでは無視します。
確か、指示がなくても大概切り捨てて良かった気がします・・・

10111.1001(2進)を16進にします。
2進4桁で16進数1桁に変換できる法則(?)があるので
両側、小数点から数えて4つづつで切ります。

←...0000|0001|0111|.|1001|00...→

無視することにした右の塊と、「0」しか無い左の塊を消すと

0001|0111|.|1001  これを塊ごとに10進数化します↓

1|7|.|9   これで答えの17.9が出ます。

今回はなりませんでしたが 12|5|.|10 等になった場合、C|5|.|A と16進数の表記に直してください。
どこらへんが疑問なのか分からなかったので
長々書いてしまいました;分かりづらかったらスミマセン。

10進→2進が既に変換できるようであれば
面倒ですが10進→2進→16進の方が分かりやすいかもしれません。

23.6(10進)→10111.1001...(2進)になります
 少数の計算方法を説明すると
 2進数の小数は、左から 2/1 4/1 8/1 16/1... という重みです。
 言い換えると 0.5 0.25 0.125 0.0625 ...
 よって0.6は 0.5+0.0625 が一番近いので .1001になります。
誤差が出てしまいますが、0.1未満なのでここでは無視します。
確か、指示がなくても大概切り捨てて良かった気がします・・・...続きを読む

QITパスポートの基数変換についてです。

8進数の1517を16進数に変換する問題がでてきましたが、
解説がなくて、とても困っております・・・。

解説お願いいたします・・・。

Aベストアンサー

こんにちは。

まずは8進数1517を2進数に変換します。

1517→001,101,001,111(8進数は2進数で3桁)
次に16進数は2進数4桁なので

0011,0100,1111で区切ります。
これを16進数で考えると(右から1,2,4,8)
0011→(1+2)3
0100→(4)4
1111→(1+2+4+8=15)F

となり
34Fが回答となります。

Q基数変換(10進数→2進数)の公式を理解したい

変な質問かもしれませんが、おつきあいくだされば幸いです。
表題の公式
10進数を2で割ってその余りが「0」か「1」かを求める。
最後の商を先頭に、それを下から並べる。

上記が「そうなる」ことは「実際の計算」で検証できましたが、
なぜその公式が成り立つか、について理解できません。
それ以上の追跡は、試験の趣旨から外れるかもしれませんが、気になります。
例:10→1010
ア)10/2→5あまり0
イ)5/2→2あまり1
ウ)2/2→1あまり0

<クエスチョン>
ア、イ、ウのあまり が、2進数の重み(0乗、1乗、2乗)にそれぞれ対応する根拠です。
なにかしら裏で計算されつくした結果、公式ができたのでしょうか。
前からとても気になっています。

おつきあいくださる方のご返答お待ちしております。
よろしくお願いします。

Aベストアンサー

÷2 の商は 2の1乗(=2)が含まれることを
÷2÷2 の商は 2の2乗(=4)が含まれることを
÷2÷2÷2 の商は 2の3乗(=8)が含まれることを
それぞれ表しています。

(以下の説明では「2の0乗=1」だと知っている必要があります。2に限らずどんな数でも0乗は1になるのですが)

よって質問文にある次の3つの式は,
10÷2=5あまり0
5÷2=2あまり1
2÷2=1あまり0

次の3つの文を表しているのです。
「2の0乗が10個」とは「2の1乗が5個」と「2の0乗が0個」ということ。
「2の1乗が5個」とは「2の2乗が2個」と「2の1乗が1個」ということ。
「2の2乗が2個」とは「2の3乗が1個」と「2の2乗が0個」ということ。

この文の最後の商を先頭に余りを下から並べると次のようになります。
「2の0乗が10個」とは,
「2の3乗が1個」+「2の2乗が0個」+「2の1乗が1個」+「2の0乗が0個」
つまり,(10)10 = (1010)2 ということです。

以上,回答#1と同じことなのですが,字数を費やして書いてみました(^^;

÷2 の商は 2の1乗(=2)が含まれることを
÷2÷2 の商は 2の2乗(=4)が含まれることを
÷2÷2÷2 の商は 2の3乗(=8)が含まれることを
それぞれ表しています。

(以下の説明では「2の0乗=1」だと知っている必要があります。2に限らずどんな数でも0乗は1になるのですが)

よって質問文にある次の3つの式は,
10÷2=5あまり0
5÷2=2あまり1
2÷2=1あまり0

次の3つの文を表しているのです。
「2の0乗が10個」とは「2の1乗が5個」と「2の0乗が0個」ということ。
...続きを読む

QITパスポートの問題分類わけについて

こんにちは。
ITパスポートの問題を作成しているのですが、問題の分類がよく分かりません。

大分類・中分類・小分類に問題を分けなければならないようですが、よく分かりません。

2011年特別の問題を分類別に分けているサイトはありませんでしょうか?

もしくは問題を解説していただければありがたいのですが・・・

回答よろしくお願いします。

Aベストアンサー

> 大分類・中分類・小分類に問題を分けなければならないようですが、よく分かりません。
たぶん、大分類は「ストラテジ系/マネジメント系/テクノロジ系」なんでしょうが
質問なさってる「分類」の定義がわかりません。

IPAさんの公式サイトで問題と解答がダウンロードできます。
わからない問題については、個別にここで質問すれば良いと思います。

参考URL:http://www.jitec.ipa.go.jp/1_04hanni_sukiru/_index_hani_sukil.html


人気Q&Aランキング

おすすめ情報