①変数 a に,並べ替えたい数字の列を入れます.
まあ,ここは,あまり考えてもしかたないので,これまでと同様に
a = [3,2,5,5,1,2,1] の様に入れてやればいいです.
②次に,変数 a に何個の数字が入っているのかを調べて,変数 kosu に入れましょう.
これは既知のことですね.
③ここで,バケツを用意します.
バケツの中の紙には変数 a に出てくる数字の個数をカウントしていきたいので,変数の名前を b としましょう.
何となく,「バケツ1」は b[1] とすれば良さそうな気がしますが,ここで b[1]=b[1]+1 とかするとエラーが出ます.
そこで,準備として,リスト(「配列」ともいう)を使って,自由に計算できるようにするために,次のオマジナイを書いておきます.
変数 b を自由に計算できるリストの変数にしたいとき:
b = list(range(変数の数))
ここで「変数の数」は,バケツが何個あるかです.
ただし,これまでと同様にリストは「0番から数える」ので,もし「バケツ1」から「バケツ5」までの入れ物が欲しいのなら,使わない「バケツ0も含めて,6個のバケツが必要」ということになります.
だから,
b=list(range(6))
ということにしてやれば,「バケツ0」から「バケツ5」の6個のバケツを作ることができます.
この問題では,数字の範囲を input() で読み込むようにしましょう.
問題を簡単にするために,バケツは使っても使わなくても「バケツ0」から作ることにして,対象の数字の範囲の最大値だけを読み込むようにします.
例えば,「0から9まで」のランダムに並んだ数字を並べ替えるのであれば「9」を,「0から100まで」であれば「100」を読み込むようにします.
最大の数は変数 saidai に入れることにしましょう.
これで準備は終わりです.
例えば,変数 a には, [3,2,5,5,1,2,1]が入っているとすると kosu は 7,数字の範囲は5より大きければ何でもいいので,saidai は 5 にしておきましょう.
④a[0]から順番に,その数字が差し示すバケツの数字を +1 します.
この例であれば,最初の変数 a[0] には 3 がは入っているので,「バケツ3」の値を1増やします.
具体的には,バケツを表す変数 b を使って, b[3] = b[3] + 1 のようにしてやれば良いですね.
※ここで,+= とか,この授業で導入していない書き方をすると0点なので注意しましょう.
⑤これを while を使って kosu 回繰り返してやれば,バケツに入れる作業は終わりです.
⑥最後に,やはり while を二重に使って,0は表示せず,1は2回表示,2も2回,3は1回,4は表示せず,5は2回表示してやれば,並べ替えた(ソートされた)結果が表示されます.
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14246412504
これの事ですか??
マルチポストは当然マナーや態度としてよくないですが、回答が付いていないならまだしも、回答をもらっている(少なからず解決の方向に進んでいる)のになぜそこで得た知識を織り込んで再質問しないのでしょうか?