1

je me demande comment programmer le fameux C(n,p)
je rappelle que c'est :
n!
-----------
k! . (n-k)!

donc si qqn a deja programmer cette fonction là (assez rapidement j'entend)

pui,s pendant qu'on y est, je voudrais savoir comment faire les infini ... là, je n'ai absolument aucune idée ..

2

pour le binôme, il me semble que pascal et un tableau est assez rapide
Cours et tutos Asm: http://membres.lycos.fr/sirryl

3

C'est quoi k (dans la formule) et c'est quoi p (dans les paramètres de la fonction) ?
avatar
Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com.
Quelques idées personnelles ici.

4

ben fo ecrire les multiplications a la bourrin ( en réécrivant la formule d'une autre maniere avec 'simplifications')

5

> Thibaut
nEUrOne s'est trompé dans les notations wink
C'est cela :
binom.bmp
[edit]Edité par ZdRUbAl le 25-12-2001 à 10:33:58[/edit]

6

j'aime le "ZdRUbAl (c) 2001" ! smile
:D

7

Tu as proposé 2 notations, mais tu as oublié la notation américaine: nCk (c'est de là que vient le nom de la fonction nCr - les américains utilisent aussi d'habitude r à la place de k).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

8

Hé hé, je l'ai fait en vitesse avec l'éditeur de formule de Star Office 5.2 smile
Il fallait que je le teste oui

9

oué .. remplacer k par p ... sad

10

3 factorielles sont le plus simple...
Site : http://www.phareaway.com/
Membre du groupe Phare Away et webmaster du site

11

G fais ce prog en C, d'après le principe d'un algo que m'a filler le prof de math, c bien plus efficace qu'avec le tableau de pascal!
// C Source File
// Created 25/10/01; 18:09:10

#define USE_TI89                       // Produce .89z File
#define RETURN_VALUE               // Return Pushed Expression
#define OPTIMIZE_ROM_CALLS    // Use ROM Call Optimization
#include <tigcclib.h>                   // Include All Header Files

/* Main Function
arguments: n et p comme la fontion Ti! attention ils ne doivent pas dépacer 
2^16 de même le résultat ne doit dépacer 2^32.
le principe de l'algo c que:
nCp = n!/(p!*(n-p)!)
    = n*(n-1)*(n-2)* ... * (n-p) /p!
    = n/1 * (n-1)/2 * (n-2)/3 * ... * (n-p)/p
Malin non? l'astuce c que le résultat de chaque division est un entier donc on 
ne travail ni avec les floats, ni les factoriels ni même avec un tableau c qui 
rend l'algorithme puissant. Pour les puristes on peu s'amuser a le faire en 
ASM, l'histoire de gagner quelques cycles ;-)
*/

void _main(void)
{
  ESI argptr;
  short i, p, n; 
  unsigned long r=1;
  InitArgPtr(argptr);
  if( (ArgCount() != 2) || (GetArgType(argptr) != POSINT_TAG) ){
  	ST_showHelp(strerror(8)); //invalid argument
  } else {
  	n = GetIntArg(argptr);
  	p = GetIntArg(argptr);
  	for (i=1; i<=p; i++) {
  		r = r*(n-i+1)/i;
  	}
  	push_longint(r);
  }
}

[edit]Edité par Cyberplague le 26-12-2001 à 17:24:40[/edit]

12

Seulement, n-1 n'est pas forcément divisible par 2, ni n-2 par 3. Dit simplement que lorsqu'on divise par un nombre i, on a déjà fait passer i entiers décroissants et que donc c'est normal que cela ne soit pas des décimaux qui en ressortent.
Site : http://www.phareaway.com/
Membre du groupe Phare Away et webmaster du site

13

(n-1) n'est effectivement pas divisible par 2 en revanche n*(n-1) l'est forcement, mais je crois que c ce que tu a voulu dire. Mais le pb n'est pas là, le pb c que n*(n-1)*(n-2)*(n-3) est divisible en fait par 8! (on le divise par 2 puis par 4). Mais le principe reste le même. Et puis si tu as compris ce qui se passait pour la divisibilité g donc bien fais de ne pas l'expliquer en détail wink surtout que ce n'est pas vraiment le sujet du topic! tongue

14

bordel vous vous faites chier pour kedalle les enfants... une factorielle coute cher, une addition, non... or t'as une formule de recurrence: c pascal. Bon ben moi je dis y'a pas plus rapide... meme avec les divisions de cyberplague. surtout si tu utilises du "stockage"de factorielles dans une matrice

cyberplague:
fais les calculs de complexité toi-meme, tu verras... (toi tu utilises n-p multiplications et autant de divisions et de soustraction... Pascal avec stockage, lui, est carrement plus puissant, c des additions, et t'en a tres peu)
avatar
Il n'a pas de mots
Décrire son mépris
Perdre les rênes
Il a perdu la foi