/* renren2 > renren2.txt
wc -l renren2.txt
以下は、Cのソースコードです。Windowsに、CygwinまたはMinGWをインストールすれば、コンパイルおよび実行が可能です*/
#define BALL_COUNT 43 /* LOTO6 */
#include <stdio.h>
int main(void) {
char c[ BALL_COUNT + 1 ][4]; /* "", "01 ", "02 ", "03 ", ..., "43 " */
int i, k, m, n, p, q, r;
c[0][0] = '\0';
for(i = 1; i <= BALL_COUNT; i++) sprintf(&c[i][0], "%02d ", i);
for(i = 1; i <= BALL_COUNT; i++) {
for(k = i + 1; k <= BALL_COUNT; k++) {
for(m = k + 1; m <= BALL_COUNT; m++) {
for(n = m + 1; n <= BALL_COUNT; n++) {
for(p = n + 1; p <= BALL_COUNT; p++) {
for(q = p + 1; q <= BALL_COUNT; q++) {
r = 0;
if(k == i + 1) r++;
if(m == k + 1) r++;
if(n == m + 1) r++;
if(p == n + 1) r++;
if(q == p + 1) r++;
if(r == 2) {
fputs(&c[i][0], stdout); fputs(&c[k][0], stdout); fputs(&c[m][0], stdout);
fputs(&c[n][0], stdout); fputs(&c[p][0], stdout); fputs(&c[q][0], stdout);
fputc('\n', stdout);
}
}}}}}}
return 0;
}
コンパイルする前に、
>>60の全角空白を2個の半角空白に置換してください
>>60は、連番が2か所ある場合のみ、ロト6の組合せを出力します。
if(r == 2)にある2を変更すれば、他の場合も出力できます。
連番がない組合せは、2760681とおり。
>>7に一致した。
連番が1か所ある組合せは、2509710とおり。
連番が2か所ある組合せは、738150とおり。例、17 19 21 22 36 37 / 08 10 11 12 20 40
連番が3か所ある組合せは、84360とおり。例、25 26 27 28 35 38 / 04 30 31 36 37 38
連番が4か所ある組合せは、3515とおり。例、19 20 21 24 25 26 / 04 05 06 09 10 11
連番が5か所ある組合せは、38とおり。例、01 02 03 04 05 06 / 38 39 40 41 42 43
2760681 + 2509710 + 738150 + 84360 + 3515 + 38 = 6096454
43C6 = 6096454
一致した!