/*************************************** * * * Copyright (c) 1998 Jean-Eric Pin * * All rights reserved. * * * * TAB = 2 spaces * * * ***************************************/ /*------------------------------------------------------------------- * Arithmetique.c Jean-Eric Pin 18/03/98 * Fonctions arithmetiques elementaires. Utilisees seulement pour * le calcul de la taille des monoides In et POIn, donc pour de petites valeurs * Ne pas utiliser a d'autres fins (risques de depassement) * Evite le recours a une bibliotheque specialisee *------------------------------------------------------------------- */ #include <stdlib.h> #include <stdio.h> #include "Arithmetique.h" int Factorial(int n) { int F = 1; int i; for (i = 2; i <= n; i++) F *= i; return F; } int Binomial(int n, int k) { int B = 1; int i; for (i = n; i > n-k; i--) B *= i; return (B / Factorial(k)); } int Stirling(int n) { int S = 0; int k; for (k = 0; k <= n; k++) { int B = 1; int i; for (i = n; i > n-k; i--) B *= i; B = B * B; S = S + B / Factorial(k); } return S; }