, B:
A , B K ; :
N=13, K=29
0123456789ABC
aaaaaaaaaaaab <- position 12 creates 12 pairs
N = , K = K - + #B = 18 #B = 1, #B - B, . B X X, , B #B; K #B .
N=12, K=18,
0123456789AB
aaaaaaaaaaab <- position 11 adds 11 pairs
N = 11, K = K - 11 + #B = 9, #B = 2:
N=11, K=9,
0123456789A
aaaaaaaaaba <- position 9 creates 9 pairs
, , :
aaaaaaaaababb
, : K & ge; N a B , K < N a B K, .
N/2 B, K , ; , , (N/2) 2 K.
function ABstring(N, K, B) {
if (B == undefined) {
if ((N / 2) * (N / 2) < K) return "";
B = 0;
}
if (K >= N) return ABstring(N - 1, K - (N - 1) + B + 1, B + 1) + 'B';
var str = "";
for (var i = 0; i < N; i++) str += (K && i == K) ? 'B' : 'A';
return str;
}
document.write(ABstring(13, 29));
Hide result, , , . B , :
aaaabaaaabbbb
, , , B , B :
aaaabaaaabbbb
aaaaabaababbb
aaaaaabbaabbb
, , .