設定された長さの繰り返しとn個の要素から可能なすべてのバリエーションを生成するCのアルゴリズムを探しています。たとえば、長さが3で、要素が1、2の場合、出力は次のようになります。
1 1 1
1 1 0
1 0 0
1 0 1
0 0 0
0 0 1
0 1 1
0 1 0
私はすでにここで解決策を探しましたが、見つけたのはJavaまたはPythonでの実装だけで、それらをCに書き直す方法がわかりません。誰かがこの問題のCコードをここに投稿できますか?
設定された長さの繰り返しとn個の要素から可能なすべてのバリエーションを生成するCのアルゴリズムを探しています。たとえば、長さが3で、要素が1、2の場合、出力は次のようになります。
1 1 1
1 1 0
1 0 0
1 0 1
0 0 0
0 0 1
0 1 1
0 1 0
私はすでにここで解決策を探しましたが、見つけたのはJavaまたはPythonでの実装だけで、それらをCに書き直す方法がわかりません。誰かがこの問題のCコードをここに投稿できますか?
void g(int l,int v,char *c)
{
int i=v;
if (l--==0)
puts(c);
else
while(i)
g(l,(c[l]='0'+--i,v),c);
}
void f(int l,int v)
{
char c[l+2];
g(((c[l]=13,c[l+1]=0),l),v,c);
}
int main()
{
f(3,2);
return 0;
}
テスト済み、動作します!、読みやすさの問題を修正するために更新されました
N
それは、ベースの長さのすべての数値を生成することに他なりませんB
(あなたの場合、Nは3で、Bは2です)。