示例#1
0
文件: rndtest.c 项目: rforge/muste
static int poker_results()
        {
        int r;
        double chi2,a,b,e;
        double f2,e2;
        int df;
        char s1[LLENGTH],s2[LLENGTH];
                                 /* d=n_pok k=poklen */
        stirling(poklen,s_pok);
        chi2=0.0;
        b=(double)n/(double)poklen/pow((double)n_pok,(double)poklen);
        print_line(" ");
        sprintf(sbuf,"Poker test: Different values r in sequences of %d.",poklen);
        print_line(sbuf);
        print_line("     r    Frequency   Expected");
        f2=e2=0.0; df=-1;
        for (r=1; r<=n_pok; ++r)
            {
            b*=(double)(n_pok-r+1);
            e=b*s_pok[r-1];
            fconv(e,"",s1);
            sprintf(sbuf,"%6d   %8u        %s",r,f_pok[r-1],s1);
            print_line(sbuf);
            e2+=e; f2+=f_pok[r-1];
            if (e2<5.0 && r<n_pok) continue;
            a=f2-e2;
            chi2+=a*a/e2; ++df;
            e2=f2=0.0;
            }
        fnconv2(chi2,accuracy,s1);
        fnconv2(1.0-muste_cdf_chi2(chi2,(double)df,1e-15),accuracy,s2);
        sprintf(sbuf,"Chi2=%s df=%d P[poker]=%s",s1,df,s2);
        print_line(sbuf);
        return(1);
        }
示例#2
0
文件: rndtest.c 项目: rforge/muste
static int coup_results()
        {
        int i,r;
        double chi2,a,b,e;
        double f2,e2;
        int df;
        unsigned int nc;
        char s1[LLENGTH],s2[LLENGTH];

                          /* d=couplen t=coupmax */
        b=1.0;
        for (r=2; r<couplen; ++r) b*=(double)r/(double)couplen;
        nc=0L; for (i=couplen-1; i<coup_max; ++i) nc+=f_coup[i];

        print_line(" ");
        sprintf(sbuf,"Coupon collector's test: Waiting time r for a complete series of %d alternatives.",couplen);
        print_line(sbuf);
        print_line("     r    Frequency   Expected");
        f2=e2=0.0; df=-1; chi2=0.0;
        for (r=couplen; r<coup_max; ++r)
            {
            b/=(double)couplen;
            stirling(r-1,s_coup);
            e=(double)nc*b*s_coup[couplen-2];
            fconv(e,"",s1);
            sprintf(sbuf,"%6d   %8u     %s",r,f_coup[r-1],s1);
            print_line(sbuf);
            e2+=e; f2+=f_coup[r-1];
            if (e2<5.0) continue;
            a=f2-e2; chi2+=a*a/e2; ++df;
            e2=f2=0.0;
            }

        stirling(coup_max-1,s_coup);
        e=(double)nc*(1.0-b*s_coup[couplen-1]);
        fconv(e,"",s1);
        sprintf(sbuf,"%6d-  %8u   %s",coup_max,f_coup[coup_max-1],s1);
        print_line(sbuf);
        e2+=e; f2+=f_coup[coup_max-1];
        a=f2-e2; chi2+=a*a/e2; ++df;
        fnconv2(chi2,accuracy,s1);
        fnconv2(1.0-muste_cdf_chi2(chi2,(double)df,1e-15),accuracy,s2);
        sprintf(sbuf,"Chi2=%s df=%d P[coupon]=%s",s1,df,s2);
        print_line(sbuf);
        return(1);
        }
示例#3
0
int main()
{
    int n, k;
    n = 3;
    k = 2;
    printf("stirling(%d/%d) = %ld\n", n, k, stirling(n,k));
    return 0;
}
示例#4
0
int main()
{
  int N;
  scanf ("%d", &N);
  int i;
  for (i = 1; i <= N; i++)
    scanf ("%ld", &number[i]);

  for (i = 1; i <= N; i++)
    printf ("%lld\n", stirling (number[i]));
  return 0;
}
int main()
{
	int test_cases;
	scanf("%d",&test_cases);
	while(test_cases--)
	{
		ll n;
		scanf("%lld",&n);
		if(n==0)
			printf("1\n");
		else
			printf("%lld\n",stirling(n));
	}
	return 0;
}
示例#6
0
文件: math.c 项目: slaeshjag/fanbot3
void pluginFilter(void *handle, const char *from, const char *host, const char *command, const char *channel, const char *message) {
	char buff[520];
	int i, j;
	double k;
	time_t t;

	if (strcmp(command, "PRIVMSG") != 0)
		return;
	channel = ircGetIntendedChannel(channel, from);
	
	if (strcmp(message, API_HELP_CMD) == 0)
		sendHelp(from);
	if (strstr(message, "<s ") == message) {
		t = time(NULL);
		i = j = 0;
		sscanf(message, "<s %i, %i", &i, &j);
		k = stirling(i, j, time(NULL));
		if (time(NULL) - t >= 5)
			sprintf(buff, "S(%i, %i) took too long .-.", i, j);
		else
			sprintf(buff, "S(%i, %i) = %f", i, j, k);
		ircMessage(channel, buff);
	} else if (strstr(message, "<fibo") == message) {
		i = 0;
		sscanf(message, "<fibo %i", &i);
		k = fibonacci(i);
		if (k > 0)
			sprintf(buff, "Fibonacci number %i is %.0f", i, k);
		else
			sprintf(buff, "Fibonacci number %i is inf", i);
		ircMessage(channel, buff);
	}
	

	return;
}
int main(void) {
  stirling(n);
  printf("bell(%lu)= %lu\n", n, bell(n));
  return 0;
}