0

最大 N 文字の長さの文字列を作成する関数を実行するプログラムを作成しようとしています
。たとえば、入力 "AB" (A および B 文字が可能) と 3 (最大長): A AA AAA AAB AB ABA ABB ... BB BBA BBB (順序は関係ありません) )

私はこれを見つけました: Bash string handling (char at index and concatenation)
答えは 2 の長さの文字列にのみ適用されます。たとえば、長さ 10、文字数 20 で実行したいと考えています。(これを実行する時間があります:)) これ
を行う方法はありますか? もしそうなら、どのように?

4

1 に答える 1

3

Bash ソリューション:

chars='{A,B}'                         # characters to use
cnt=6                                 # maximum length
str=''
for (( CNTR=0; CNTR<$cnt; CNTR+=1 )); do
  str=$str$chars
  eval echo "$str"
done

文字リストは拡張できます。

chars='{A,B,C}'  

出力:

A B
AA AB BA BB
AAA AAB ABA ABB BAA BAB BBA BBB
AAAA AAAB AABA AABB ABAA ABAB ABBA ABBB BAAA BAAB BABA BABB BBAA BBAB BBBA BBB

cnt=20 とセット {A,B} には数秒かかります。

于 2013-03-30T18:39:21.843 に答える