From 0967943080c374ee8286ac1fb29583f50bae8612 Mon Sep 17 00:00:00 2001 From: Martin Mares Date: Wed, 27 Feb 2008 16:57:00 +0100 Subject: [PATCH] More bits of the program. --- programs/n0.c | 70 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 68 insertions(+), 2 deletions(-) diff --git a/programs/n0.c b/programs/n0.c index 36da613..abad049 100644 --- a/programs/n0.c +++ b/programs/n0.c @@ -11,6 +11,20 @@ int f(int n) return ff[n]; } +// Kombinacni cislo +int c(int n, int k) +{ + if (k > n/2) + k = n-k; + long long int r = 1; + for (int i=1; i<=k; i++) + { + r *= n--; + r /= i; + } + return r; +} + // Satnarka int s(int d) { @@ -40,8 +54,45 @@ int n0(int z, int d) return nn[z][d]; } +// Vzorecek ze Stanleyho +int s0(int z, int d) +{ + int r = 0; + int p = 1; + for (int k=0; k<=z; k++) + { + r += p * f(d-k) * c(z,k); + p = -p; + } + return r; +} + +// Satnarciny pomerny +double alpha(int n) +{ + double x = 1; + int sg = -1; + for (int i=1; i<=n; i++) + { + x += sg*(1. / f(i)); + sg = -sg; + } + return x; +} + int main(void) { + printf("Satnarka obema zpusoby:\n"); + for (int i=1; i= i) + printf("%d", s0(i, j)); + putchar('\t'); + } + putchar('\n'); + } + putchar('\n'); + + printf("Pomery:\n"); for (int i=0; i= i && i > 0) { - double d = (double)(n0(i-1,j)-n0(i,j))/n0(i,j); - printf("%5.2f", 1/d); + double d = (double)n0(i-1,j)/(n0(i-1,j)-n0(i,j)); + printf("%2.4f", d); } putchar('\t'); } -- 2.39.5