[ create a new paste ] login | about

Link: http://codepad.org/AdSayNn1    [ raw code | output | fork ]

C, pasted on Sep 25:
#include <stdio.h>

#define N_RANGE	(5)		/* 0 .. N_RANGE */
#define N_SUM	(7)
#define N_HIST	(N_RANGE * N_SUM + 1)
#define N_HIST2	(N_SUM)

int main(void)
{
	int cnt[N_SUM] = { 0 };
	int hist[N_HIST] = { 0 };
	int hist2[N_HIST2] = { 0 };
	int loop = 1;
	int i;

	while (loop) {
		int sum = 0;
		for (i=0; i<N_SUM; i++) {
			sum += cnt[i];
		}
		hist[sum]++;
		hist2[sum % N_SUM]++;

		for (i=0; i<N_SUM; i++) {
			int pre = cnt[i];
			cnt[i] = (cnt[i] + 1) % (N_RANGE+1);
			if (pre > cnt[i]) {
				if (i==N_SUM-1) {
					loop = 0;
				}
			} else {
				break;
			}
		}
	}
	
	for (i=0; i<N_HIST; i++) {
		printf("hist:%d = %d\n", i, hist[i]);
	}
	for (i=0; i<N_HIST2; i++) {
		printf("hist2:%d = %d\n", i, hist2[i]);
	}

	return 0;
}


Output:
hist:0 = 1
hist:1 = 7
hist:2 = 28
hist:3 = 84
hist:4 = 210
hist:5 = 462
hist:6 = 917
hist:7 = 1667
hist:8 = 2807
hist:9 = 4417
hist:10 = 6538
hist:11 = 9142
hist:12 = 12117
hist:13 = 15267
hist:14 = 18327
hist:15 = 20993
hist:16 = 22967
hist:17 = 24017
hist:18 = 24017
hist:19 = 22967
hist:20 = 20993
hist:21 = 18327
hist:22 = 15267
hist:23 = 12117
hist:24 = 9142
hist:25 = 6538
hist:26 = 4417
hist:27 = 2807
hist:28 = 1667
hist:29 = 917
hist:30 = 462
hist:31 = 210
hist:32 = 84
hist:33 = 28
hist:34 = 7
hist:35 = 1
hist2:0 = 39990
hist2:1 = 39991
hist2:2 = 39991
hist2:3 = 39991
hist2:4 = 39991
hist2:5 = 39991
hist2:6 = 39991


Create a new paste based on this one


Comments: