Crv ( k, v, d ) = {
if( d == k,
print ( vecextract( v , "2..-2" ) )
,
if( d == k,
print ( vecextract( v , "2..-2" ) )
,
for( i = v[ d + 1 ] + 1, #v,
v[ d + 2 ] = i;
Crv( k, v, d + 1 ) ));
}
combRV( n, k ) = Crv ( k, vector( n, X, X-1), 0 );
\\--------------------------------------------------------------
v[ d + 2 ] = i;
Crv( k, v, d + 1 ) ));
}
combRV( n, k ) = Crv ( k, vector( n, X, X-1), 0 );
\\--------------------------------------------------------------
Cr ( c, z, b, n, k ) = {
if( z < b, print1( c, " " );
if( n>0, Cr( c+1, z , b* k \n, n-1, k - 1 ))
,
if( n>0, Cr( c+1, z-b, b*(n-k)\n, n-1, k ))
);
}
if( z < b, print1( c, " " );
if( n>0, Cr( c+1, z , b* k \n, n-1, k - 1 ))
,
if( n>0, Cr( c+1, z-b, b*(n-k)\n, n-1, k ))
);
}
combR( n, k ) = {
local(
bnk = binomial( n, k ),
b11 = bnk * k \ n ); \\binomial( n-1, k-1 ) );
for( z = 0, bnk - 1,
Cr( 1, z, b11, n-1, k-1 );
);
}
\\--------------------------------------------------------------
Ci( z, b, n, k ) = { local( c = 1 );
n--; k--;
while( k >= 0 ,
if( z < b,
print1(c, "-");
c++;
if( n > 0,
b = b*k \ n);
n--; k--;
,
c++;
z -= b;
b = b*(n-k)\n;
n--
)
);
}
n--; k--;
while( k >= 0 ,
if( z < b,
print1(c, "-");
c++;
if( n > 0,
b = b*k \ n);
n--; k--;
,
c++;
z -= b;
b = b*(n-k)\n;
n--
)
);
}
combI( n, k ) = {
local( bnk = binomial( n, k ),
b11 = bnk * k \ n ); \\ binomial( n-1, k-1 )
for( z = 0, bnk - 1,
Ci(z, b11, n, k );
print
);
}
local( bnk = binomial( n, k ),
b11 = bnk * k \ n ); \\ binomial( n-1, k-1 )
for( z = 0, bnk - 1,
Ci(z, b11, n, k );
);
}
Brak komentarzy:
Prześlij komentarz