#include #include #include #include #include // this is the automated version - 4 digit numbers with digits 0 to 9, no // duplicates. // returns 0 if there are duplicate digits otherwise returns 1 int nodup(int x) { char buff[5];int i,j; snprintf(buff,5,"%04d",x); for (i=0;i<3;++i) { for (j=i+1;j<4;++j) { if (buff[i]==buff[j]) return 0; }} return 1; } int score(int x,int y) { // count bulls and cows and return 10*b+c char s1[5],s2[5];int i,j,b,c; b=c=0; snprintf(s1,5,"%04d",x);snprintf(s2,5,"%04d",y); for (i=0;i<4;++i) { for (j=0;j<4;++j) { if (s1[i]==s2[j]) { if (i==j) ++b;else ++c; break; }}} return 10*b+c; } void showtime(void) { time_t current_time; char* c_time_string; current_time = time(NULL); /* Convert to local time format. */ c_time_string = ctime(¤t_time); printf("\nCurrent time is %s\n", c_time_string); } int main(int argc,char *argv[]) { printf("\nentropya.c - tct - 6/12/16"); printf("\nusage: entropya -noentropy -num n\n"); int sc[41],ar[5040],sar[5040],counts[5040][14]; int gs,scr,tttries,ttries[10],sn,ia,ea[5040],e; int i,k,j,m,tries,maxm,b,c; int noentropy=0,num=100; // controls number of numbers processed double minm,entropy[5040],cnt,s1=0,s2=0,sd; for (i=1;i1) entropy[i]+=cnt*log(cnt); } if (entropy[i]<=minm) { if (entropy[i]