#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <math.h>

static unsigned int factorial(unsigned int n){
	if (n <= 1)
		return 1;
	else
		return n * factorial(n-1);
}

int main(int argc, char **argv){
	double n_dice = 6;
	double n_sides = 6;
	double n_invalid = 4;
	double result = 0;
	uint32_t nums[6];

	for(nums[0]=0; nums[0]<n_dice ; nums[0]++){
		result = 1 - pow( (n_invalid/n_sides), (nums[0]+1) );

		printf("%d: %lf\n", nums[0]+1, result );
	}
	//(1) * (5/6)^15
	//uint32_t result = factorial(11) / factorial(6) * factorial(5);
	//printf("%u\n", result );
	return 0;
	//int nums[6];
	//int num2 = 0;
	char *file_data_out = (char *)malloc(strlen("combos.txt" + 1) );
	(void)strcpy(file_data_out, "combos.txt");

	FILE *fp_data_out = fopen( file_data_out, "w" );
	if(fp_data_out == NULL){
		printf("Error opening file: %s\n", file_data_out);
		printf("Exiting\n");
		free(file_data_out);
		exit(1);
	}
	//(6+5) (6+4) (6+3) (6+2) (6+1) / 120
	//printf("%u\n", factorial(6) );
	//N(n,m) = ( n + m - 1)! / ( n! * ( m - 1 )! )

	//( 6 + 6 - 1)! / ( 6! * ( 6 - 1 )! )
	//factorial(11) / factorial(6) * factorial(5);
	for(nums[0]=0; nums[0]<5 ; nums[0]++){
		

	}

	printf("Exiting\n");
	fclose(fp_data_out);
	free(file_data_out);
	return 0;
}