• ベストアンサー

順列を列挙するプログラム

10個の0と1からなる列(0000000000、0000011111など)のすべての種類を列挙するプログラムを作りたいのですけど、どのようにすればよいでしょうか?教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • shukugawa
  • ベストアンサー率30% (80/264)
回答No.1

色々なやり方がありますが、とりあえず一つ。 1. 10進数の値を与えると2進数で表示するルーチンを作る 2. for文 で 0 → 1023 のループで 1. を呼び出す

ab5
質問者

補足

他の方法も教えて貰えないでしょうか? お願いします。

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

再帰呼び出しを使う方法もあると思います。一例としては private static String[] get(int base, int num) { if(num<=1) { String ret[]=new String[base]; for(int i=0;i<base;i++) { ret[i]=Integer.toString(i); } return ret; } String temp[]=get(base,num-1); String ret[]=new String[base*temp.length]; for(int i=0;i<base;i++) { for(int j=0;j<temp.length;j++) { ret[i*temp.length+j]=i+temp[j]; } } return ret; } でしょうか。

すると、全ての回答が全文表示されます。

関連するQ&A