Discussion:
dénombrement
(trop ancien pour répondre)
Boris
2005-04-18 13:54:43 UTC
Permalink
Bonjour
combien y-a-t-il de classements possibles avec ex-equo entre n variables ?
exemple pour un vecteur de 5 variables (x1,x2,x3,x4,x5)
un classement associé possible (3,3,5,1,2)
ou encore (1,3,4,5,2) ou encore (1,1,1,4,5)
je crois que le problème est plus dur qu'il n'y parait (notamment au
niveau du nombre d'égalités possibles au sein des variables), mais j'ai
peut-être manqué quelque chose...
merci d'avance,
--
Boris
http://www.pi314.net
Etienne Rousee
2005-04-18 14:28:51 UTC
Permalink
Post by Boris
Bonjour
combien y-a-t-il de classements possibles avec ex-equo entre n variables ?
exemple pour un vecteur de 5 variables (x1,x2,x3,x4,x5)
un classement associé possible (3,3,5,1,2)
ou encore (1,3,4,5,2) ou encore (1,1,1,4,5)
je crois que le problème est plus dur qu'il n'y parait (notamment au
niveau du nombre d'égalités possibles au sein des variables), mais j'ai
peut-être manqué quelque chose...
p-listes --> 5^5 ?
--
Etienne
Boris
2005-04-18 14:42:33 UTC
Permalink
Post by Etienne Rousee
Post by Boris
Bonjour
combien y-a-t-il de classements possibles avec ex-equo entre n variables ?
exemple pour un vecteur de 5 variables (x1,x2,x3,x4,x5)
un classement associé possible (3,3,5,1,2)
ou encore (1,3,4,5,2) ou encore (1,1,1,4,5)
je crois que le problème est plus dur qu'il n'y parait (notamment au
niveau du nombre d'égalités possibles au sein des variables), mais j'ai
peut-être manqué quelque chose...
p-listes --> 5^5 ?
je en pense pas car imaginons que l'on place les 4 premiers ex aequo
(1,1,1,1) le dernier n'a que le choix de 1 ou 5
donc à mon avis, il faut en retirer de n^n
--
Boris
http://www.pi314.net
Masterbech
2005-04-18 18:26:20 UTC
Permalink
Post by Boris
Post by Etienne Rousee
Post by Boris
Bonjour
combien y-a-t-il de classements possibles avec ex-equo entre n variables ?
exemple pour un vecteur de 5 variables (x1,x2,x3,x4,x5)
un classement associé possible (3,3,5,1,2)
ou encore (1,3,4,5,2) ou encore (1,1,1,4,5)
je crois que le problème est plus dur qu'il n'y parait (notamment au
niveau du nombre d'égalités possibles au sein des variables), mais j'ai
peut-être manqué quelque chose...
p-listes --> 5^5 ?
je en pense pas car imaginons que l'on place les 4 premiers ex aequo
(1,1,1,1) le dernier n'a que le choix de 1 ou 5
donc à mon avis, il faut en retirer de n^n
Bon tant pis (jeu de mots, jeu de bozo, surtout pour 3.1415... :=))
je n'ai pas compris ce que tu demandes. S'agit-il de listes de variables
dont seul le premier numéro (le x1) puisse être répété mais tous les mêmes
nombres apparaissant doivent être regroupés ?
Par exemple, (3,3,1,3,1) n'est pas possible mais (3,3,5,5,1) et (3,3,5,2,4)
sont-ils possibles ?

********************
www.mathematiques.fr.st
*******************
LD
2005-04-18 20:01:14 UTC
Permalink
Post by Masterbech
je n'ai pas compris ce que tu demandes. S'agit-il de listes de variables
dont seul le premier numéro (le x1) puisse être répété mais tous les mêmes
nombres apparaissant doivent être regroupés ?
Boris a parlé de *classements.* Plus précisément, imagine que N personnes
passent un concours où tout le monde est admis, et qu'on publie le
classement par ordre alphabétique : quels sont les classements possibles ?
Post by Masterbech
Par exemple, (3,3,1,3,1) n'est pas possible
Si : deux 1ers ex-aequo (qui sont 3ème et 5ème dans l'ordre alphabétique),
puis les trois autres ex-aequos.
Post by Masterbech
mais (3,3,5,5,1)
Non : s'il n'y a qu'un seul 1er, il doit y avoir un 2ème.
Post by Masterbech
et
(3,3,5,2,4)
sont-ils possibles ?
Non plus : il y a forcément au moins un 1er.

LD
Gab
2005-04-18 19:13:03 UTC
Permalink
Post by Boris
Bonjour
combien y-a-t-il de classements possibles avec ex-equo entre n
variables ? exemple pour un vecteur de 5 variables (x1,x2,x3,x4,x5)
un classement associé possible (3,3,5,1,2)
ou encore (1,3,4,5,2) ou encore (1,1,1,4,5)
je crois que le problème est plus dur qu'il n'y parait (notamment au
niveau du nombre d'égalités possibles au sein des variables), mais
j'ai peut-être manqué quelque chose...
merci d'avance,
je ne sais pas si on peut en extraire une formule mais je propose la méthode
suivante :

Regarde les partitions de 5 (cela correspond à la répartition des rangs) :
11111 (rangs différents)
1112 (3 rangs différents et 2 ex-aequo)
122
113
23
14
5 (5 ex-aequo)

pour chacune tu peux calculer assez facilement le nombre de possibilités :
11111 -> 5!
1112 -> 4*3! (4 possibilités pour les 2 ex-aequo)
122 -> 4*2 (4 pour la 1ere paire, 2 pour la 2e, 1 pour le dernier)
113 -> 3*2 (3 pour le trio, 2 pour le reste)
23 -> 2 (c'est le cas chiant)
14 -> 2
5 -> 1

Cette méthode se généralise en fait très mal quand tu passe à n.

--
Gab
Arthur B.
2005-04-18 22:50:41 UTC
Permalink
Soit f(k,n) le nombre de manières de placer n joueurs dans k scores sans
qu'une classe de score soit vide

f(k,n) = k^n - C(k,1).f(k-1,n) - C(k,2).f(k-2,n) - ... - C(k,k-1).f(1,n)

avec f(k,n) = 0 si k > n et f(1,n) = 1

le nombre cherché est An = f(1,n) + f(2,n) + f(3,n) + ... + f(n,n) =
1 + (2^n - 2) + (3^n - 3(2^n-2) - 3) + ... + n! =

An = sum(k=1..n,k^n - sum(i=1..k-1,C(k,i).f(k-i,n)) )

ahh
qqun pour sortir de la récurrence ?
Arthur B.
2005-04-18 23:37:59 UTC
Permalink
Bon bah je trouve pas trop mais


#include <stdio.h>
int f[100];
int main()
{
int k,n,i,j,Cki,total=0;
f[1] = 1;
scanf("%d",&n);
for(k=1;k<=n;k++)
{
Cki = k;
f[k] = 1;
for(j=0;j<n;j++)
f[k]*=k;
for(i=1;i<=k-1;i++)
{
f[k] -= Cki*f[k-i];
Cki = (Cki*(k-i))/(i+1);
}
total += f[k];
}
printf("%d\n",total);
return 0;
}

1,3,13,75,541



Sur l'encyclopédie des suites entières on tombe sur
http://www.research.att.com/projects/OEIS?Anum=A000670


Et là on tombe sur plein de formules très jolies !!
Boris
2005-04-19 12:27:17 UTC
Permalink
Post by Arthur B.
Bon bah je trouve pas trop mais
#include <stdio.h>
[code]
1,3,13,75,541
Sur l'encyclopédie des suites entières on tombe sur
http://www.research.att.com/projects/OEIS?Anum=A000670
Et là on tombe sur plein de formules très jolies !!
bravo, c'est la démarche qu'il fallait faire, tu as été plus courageux
que moi...
je vais potasser ça
comme quoi, ce n'est pas un problème si évident !
--
Boris
http://www.pi314.net
Boris
2005-04-19 14:13:39 UTC
Permalink
Post by Boris
Bonjour
combien y-a-t-il de classements possibles avec ex-equo entre n variables ?
exemple pour un vecteur de 5 variables (x1,x2,x3,x4,x5)
un classement associé possible (3,3,5,1,2)
ou encore (1,3,4,5,2) ou encore (1,1,1,4,5)
je crois que le problème est plus dur qu'il n'y parait (notamment au
niveau du nombre d'égalités possibles au sein des variables), mais j'ai
peut-être manqué quelque chose...
merci d'avance,
autre problème,
créer un programme court qui les liste tous....
Boris
--
Boris
http://www.pi314.net
stef daroist
2005-04-19 14:43:43 UTC
Permalink
Post by Boris
Post by Boris
Bonjour
combien y-a-t-il de classements possibles avec ex-equo entre n variables ?
exemple pour un vecteur de 5 variables (x1,x2,x3,x4,x5)
un classement associé possible (3,3,5,1,2)
ou encore (1,3,4,5,2) ou encore (1,1,1,4,5)
je crois que le problème est plus dur qu'il n'y parait (notamment au
niveau du nombre d'égalités possibles au sein des variables), mais
j'ai peut-être manqué quelque chose...
merci d'avance,
autre problème,
créer un programme court qui les liste tous....
Boris
J'ai eu problème et j'avais trouvé une solution à base d'arbre :

exemple 3 variables : A, B , C

A la racine on pose A
Puis 3 branches correspondant chacunes à :
C avant A, C égale A, C après A.

Pour chacunes de ces 3 sous branches
on crée des sous-sous branches :
exemple pour la sous branche : --C--A--
on aura : --B--C--A-- , puis --B=C--A-- , puis --C--B--A---, etc...

Si l'on avait 4 variables, il suffirait de compléter l'arbre existant
pour 3.

Bon, c'est pas évident, en mode texte d'expliquer, avec un dessin, on se
rend vite compte.

N'empeche qu'avec cette méthode j'avais extrait une formule générale qui
expliciter le nombre de comparaison pour N variables, hélas, à l'instar
de l'autre, j'ai du la griffoner sur la marge !!!!!!

Puisse cela vous aider.
stef daroist
2005-04-19 15:29:47 UTC
Permalink
exemple pour A,B,C,D

A
|
-> -B-A-
--> -C-B-A-
-> -D-C---B---A-
-> -DC---B---A-
-> ---C-D-B---A-
-> ---C--DB---A-
-> ---C---B-D-A-
-> ---C---B--DA-
-> ---C---B---A-D-
-> -CB-A-
-> -D-CB---A-
-> --DCB---A-
-> ---CB-D-A-
-> ---CB--DA-
-> ---CB---A-D-

-> -B-C-A-
-> -D-B---C---A-
-> --DB---C---A-
-> ---B-D-C---A-
-> ---B--DC---A-
-> ---B---C-D-A-
-> ---B---C--DA-
-> ---B---C---A-D-
-> -B-CA-
-> -D-B---CA-
-> --DB---CA-
-> ---B-D-CA-
-> ---B--DCA-
-> ---B---CA-D-
-> -B-A-C-
-> -D-B---A---C-
-> --DB---A---C-
-> ---B-D-A---C-
-> ---B--DA---C-
-> ---B---A-D-C-
-> ---B---A--DC-
-> ---B---A---C-D-

-> -BA-
-> -C-BA-
-> -D-C---BA-
-> --DC---BA-
-> ---C-D-BA-
-> ---C--DBA-
-> ---C---BA-D-
-> -CBA-
-> -D-CBA-
-> --DCBA-
-> ---CBA-D-
-> -BA-C-
-> -D-BA---C-
-> --DBA---C-
-> ---BA-D-C-
-> ---BA--DC-
-> ---BA---C-D-

-> -A-B-
-> -C-A-B-
-> -D-C---A---B-
-> --DC---A---B-
-> ---C-D-A---B-
-> ---C--DA---B-
-> ---C---A-D-B-
-> ---C---A--DB-
-> ---C---A---B-D-
-> -CA-B-
-> -D-CA---B-
-> --DCA---B-
-> ---CA-D-B-
-> ---CA--DB-
-> ---CA---B-D-
-> -A-C-B-
-> -D-A---C---B-
-> --DA---C---B-
-> ---A-D-C---B-
-> ---A--DC---B-
-> ---A---C-D-B-
-> ---A---C--DB-
-> ---A---C---B-D-
-> -A-CB-
-> -D-A---CB-
-> --DA---CB-
-> ---A-D-CB-
-> ---A--DCB-
-> ---A---CB-D-

-> -A-B-C-
-> -D-A---B---C-
-> --DA---B---C-
-> ---A-D-B---C-
-> ---A--DB---C-
-> ---A---B-D-C-
-> ---A---B--DC-
-> ---A---B---C-D-
stef daroist
2005-04-19 15:35:12 UTC
Permalink
ça fait bien 75 !!!!
Boris
2005-04-19 15:49:28 UTC
Permalink
Post by stef daroist
ça fait bien 75 !!!!
certes et c'est très graphique. Mais peut-on en tirer un code récursif
court pour générer cette liste sous forme de rangs par exemple ?
--
Boris
http://www.pi314.net
stef daroist
2005-04-19 18:27:09 UTC
Permalink
Post by Boris
certes et c'est très graphique. Mais peut-on en tirer un code récursif
court pour générer cette liste sous forme de rangs par exemple ?
Eh bien !!
Ma solution s'expose sous forme d'un arbre.
Le chemin le plus court vers l'expression récursive non ?
Boris
2005-04-20 14:45:52 UTC
Permalink
Post by stef daroist
Post by Boris
certes et c'est très graphique. Mais peut-on en tirer un code récursif
court pour générer cette liste sous forme de rangs par exemple ?
Eh bien !!
Ma solution s'expose sous forme d'un arbre.
Le chemin le plus court vers l'expression récursive non ?
je ne suis pas très fort en récursif
voici tout de même une implémentation en matlab - un peu récursive, mais
pas sous forme de fonction récursive - sans doute peu optimale mais qui
a le mérite de marcher

function [l]=genereclass(n)
%génère tous les classements possibles (avec ex-aequo) pour un
échantillon de taille n

l{1}=1;
for i=2:n,
l{i}=[];
l{i-1}=2*l{i-1};%on multiplie par 2 pour pouvoir intercaler des
rangs entre les différents rangs précédents
for j=1:length(l{i-1}),
temp=[repmat(l{i-1}(j,:),max(l{i-1}(j,:))-min(l{i-1}(j,:))+3,1)
((min(l{i-1}(j,:))-1):(max(l{i-1}(j,:))+1))'];%on prend une ligne de
rangs de l'échantillon de taille i-1 et on rajoute tous les rangs
possibles pour la nouvelle variable
%remettre temp sous la forme d'un classement sans trous
%(3,1,1)->(2,1,1)
temp=pts2cl(-temp',0)';
l{i}=[l{i};temp];
end;
l{i-1}=l{i-1}/2;
end;

function [cl]=pts2cl(pts,trous)
%pour changer un score avec points en un classement
%USAGE [cl]=pts2cl(pts)
%
%INPUT : pts - matrice colonne de points
% trous - (défaut 1) 0 si le classement (1,1,3) doit rendre %(1,1,2)
%OUTPUT : cl - classement
%commentaire : fonction(fonction(x))=x

if nargin<2,
trous=1;
else
trous=0;
end;
for j=1:size(pts,2)
points=-sort(-unique(pts(:,j)));
m=0;
ab=1;
for i=points(:)',
m=m+trous*length(ab)+(1-trous);
ab=find(pts(:,j)==i);
cl(ab,j)=m;
end;
end;
Post by stef daroist
Post by Boris
[l]=genereclass(5)
l
l =

[1] [3x2 double] [13x3 double] [75x4 double] [541x5 double]
Post by stef daroist
Post by Boris
l{3}
ans =

3 2 1
2 1 1
3 1 2
2 1 2
2 1 3
2 2 1
1 1 1
1 1 2
2 3 1
1 2 1
1 3 2
1 2 2
1 2 3


moins d'0.1s de temps de calcul, c'est honnête ;-)
--
Boris
http://www.pi314.net
stef daroist
2005-04-19 14:45:53 UTC
Permalink
J'ai eu problème et j'avais trouvé une solution à base d'arbre :

exemple 3 variables : A, B , C

A la racine on pose A
Puis 3 branches correspondant chacunes à :
C avant A, C égale A, C après A.

Pour chacunes de ces 3 sous branches
on crée des sous-sous branches :
exemple pour la sous branche : --C--A--
on aura : --B--C--A-- , puis --B=C--A-- , puis --C--B--A---, etc...

Si l'on avait 4 variables, il suffirait de compléter l'arbre existant
pour 3.

Bon, c'est pas évident, en mode texte d'expliquer, avec un dessin, on se
rend vite compte.

N'empeche qu'avec cette méthode j'avais extrait une formule générale qui
expliciter le nombre de comparaison pour N variables, hélas, à l'instar
de l'autre, j'ai du la griffoner sur la marge !!!!!!

Puisse cela vous aider.
stef daroist
2005-04-19 14:49:08 UTC
Permalink
J'ai eu problème et j'avais trouvé une solution à base d'arbre :

exemple 3 variables : A, B , C

A la racine on pose A
Puis 3 branches correspondant chacunes à :
C avant A, C égale A, C après A.

Pour chacunes de ces 3 sous branches
on crée des sous-sous branches :
exemple pour la sous branche : --C--A--
on aura : --B--C--A-- , puis --B=C--A-- , puis --C--B--A---, etc...

Si l'on avait 4 variables, il suffirait de compléter l'arbre existant
pour 3.

Bon, c'est pas évident, en mode texte d'expliquer, avec un dessin, on se
rend vite compte.

N'empeche qu'avec cette méthode j'avais extrait une formule générale qui
expliciter le nombre de comparaison pour N variables, hélas, à l'instar
de l'autre, j'ai du la griffoner sur la marge !!!!!!

Puisse cela vous aider.
Patrice Henrio
2005-04-19 15:08:54 UTC
Permalink
Post by Boris
Post by Boris
Bonjour
combien y-a-t-il de classements possibles avec ex-equo entre n variables ?
exemple pour un vecteur de 5 variables (x1,x2,x3,x4,x5)
un classement associé possible (3,3,5,1,2)
ou encore (1,3,4,5,2) ou encore (1,1,1,4,5)
je crois que le problème est plus dur qu'il n'y parait (notamment au
niveau du nombre d'égalités possibles au sein des variables), mais j'ai
peut-être manqué quelque chose...
merci d'avance,
autre problème,
créer un programme court qui les liste tous....
Boris
--
Boris
http://www.pi314.net
Je ne comprends pas ton problème.
S'agit-il du nombre de façon d'écrire N valeurs sans distinguer les valeurs
égales

Par exemple pour 3

Si 1,2,3, alors 6 possibilités, si 1,1,2, alors 3 possibilités et si 1,1,1
alors une seule possibilité.
Si ton problèmes est bien celui-là, je crois l'avoir déjà résolu il y a
quelques années car c'était un un exercice (je ne sais plus à quel niveau
j'avais traité cela)
Mais peut-être n'ai-je rien compris.
Si ton problème est bien celui auquel je pense dis le moi que je recherche
la solution qui doit se trouver dans un tas de papiers.
Boris
2005-04-19 15:08:14 UTC
Permalink
Post by Patrice Henrio
Post by Boris
Post by Boris
Bonjour
combien y-a-t-il de classements possibles avec ex-equo entre n variables ?
exemple pour un vecteur de 5 variables (x1,x2,x3,x4,x5)
un classement associé possible (3,3,5,1,2)
ou encore (1,3,4,5,2) ou encore (1,1,1,4,5)
je crois que le problème est plus dur qu'il n'y parait (notamment au
niveau du nombre d'égalités possibles au sein des variables), mais j'ai
peut-être manqué quelque chose...
merci d'avance,
autre problème,
créer un programme court qui les liste tous....
Boris
--
Boris
http://www.pi314.net
Je ne comprends pas ton problème.
ben c'est simplement les classements possibles d'un championnat de foot
à n équipes

Exemple pour trois équipes (x1,x2,x3)
(1,1,1), (1,1,3), (1,2,3), (1,2,2), (2,1,2), (2,1,3), (2,2,1), (2,3,1),
(3,1,1), (3,1,2), (3,2,1), (3,3,1), (3,1,3)

soit 13 classements possibles (le 1 veut dire classement 1, rang 1,
meilleure équipe quoi)
--
Boris
http://www.pi314.net
Richard Delorme
2005-04-19 16:08:23 UTC
Permalink
Post by Boris
Post by Boris
Bonjour
combien y-a-t-il de classements possibles avec ex-equo entre n variables ?
exemple pour un vecteur de 5 variables (x1,x2,x3,x4,x5)
un classement associé possible (3,3,5,1,2)
ou encore (1,3,4,5,2) ou encore (1,1,1,4,5)
c'est ce que j'appelerai un nombre écrit en base 5 avec les symboles
1,2,3,4,5 (au lieu de 0,1,2,3,4). Avec n chiffres, et la base b, il y a
n^b possibilités, soit ici 5^5 = 3125.
Post by Boris
Post by Boris
je crois que le problème est plus dur qu'il n'y parait (notamment au
niveau du nombre d'égalités possibles au sein des variables), mais
j'ai peut-être manqué quelque chose...
merci d'avance,
autre problème,
créer un programme court qui les liste tous....
une simple boucle de comptage... ?
--
Richard
Michel OLAGNON
2005-04-19 17:13:19 UTC
Permalink
Post by Boris
Post by Boris
Bonjour
combien y-a-t-il de classements possibles avec ex-equo entre n variables ?
exemple pour un vecteur de 5 variables (x1,x2,x3,x4,x5)
un classement associé possible (3,3,5,1,2)
ou encore (1,3,4,5,2) ou encore (1,1,1,4,5)
je crois que le problème est plus dur qu'il n'y parait (notamment au
niveau du nombre d'égalités possibles au sein des variables), mais
j'ai peut-être manqué quelque chose...
merci d'avance,
autre problème,
créer un programme court qui les liste tous....
Boris
Il me semble que quelque chose dans le style
ci-apres doit marcher :

procedure recursive range1 (classement_courant, place_courante, liste_mecs)
si (taille(liste_mecs) = 1) alors
ecrire classement_courant, "place_courante liste_mecs"
si (place_courante < 5)
ecrire classement_courant, "place_courante+1 liste_mecs"
fin si
sinon
pour mec = liste_mecs(1) a liste_mecs(taille(liste_mecs))
range1 (classement_courant & "place_courante mec, ",
place_courante, liste_mecs-mec)
range1 (classement_courant & "place_courante+1 mec, ",
place_courante+1, liste_mecs-mec)
fin pour
fin si
fin procedure

liste_mecs = (A, B, C, D, E)
pour mec = liste_mecs(1) a liste_mecs(5)
range1 ("1 mec ", 1, liste_mecs-mec)
fin pour
Boris
2005-04-20 11:29:29 UTC
Permalink
Post by Michel OLAGNON
Post by Boris
Post by Boris
Bonjour
combien y-a-t-il de classements possibles avec ex-equo entre n variables ?
exemple pour un vecteur de 5 variables (x1,x2,x3,x4,x5)
un classement associé possible (3,3,5,1,2)
ou encore (1,3,4,5,2) ou encore (1,1,1,4,5)
je crois que le problème est plus dur qu'il n'y parait (notamment au
niveau du nombre d'égalités possibles au sein des variables), mais
j'ai peut-être manqué quelque chose...
merci d'avance,
autre problème,
créer un programme court qui les liste tous....
Boris
Il me semble que quelque chose dans le style
procedure recursive range1 (classement_courant, place_courante, liste_mecs)
si (taille(liste_mecs) = 1) alors
ecrire classement_courant, "place_courante liste_mecs"
si (place_courante < 5)
ecrire classement_courant, "place_courante+1 liste_mecs"
fin si
sinon
pour mec = liste_mecs(1) a liste_mecs(taille(liste_mecs))
range1 (classement_courant & "place_courante mec, ",
place_courante, liste_mecs-mec)
range1 (classement_courant & "place_courante+1 mec, ",
place_courante+1, liste_mecs-mec)
fin pour
fin si
fin procedure
liste_mecs = (A, B, C, D, E)
pour mec = liste_mecs(1) a liste_mecs(5)
range1 ("1 mec ", 1, liste_mecs-mec)
fin pour
bon, c'est pas mal tout ça, merci
je l'ai transcris en matlab, en espérant ne pas avoir fait d'erreur, ça
doit donner un code comme ça (en restant fidèle à vos notations)

liste_mecs = {'A','B','C'};
n=length(liste_mecs);
for mec = 1:length(liste_mecs)
range1(['1 ',liste_mecs{mec},' , '],
1,setdiff(liste_mecs,liste_mecs(mec)),n);
end;

function []=range1(classement_courant,place_courante,liste_mecs,n)
if (length(liste_mecs) == 1),
disp([classement_courant, ' ', num2str(place_courante),'
',liste_mecs{1}]);
if (place_courante < n)
disp([classement_courant, ' ', num2str(place_courante+1),'
',liste_mecs{1}]);
end;
else
for mec = 1:length(liste_mecs)
range1([classement_courant ' ' num2str(place_courante)
liste_mecs{mec} ',
'],place_courante,setdiff(liste_mecs,liste_mecs(mec)),n);
range1([classement_courant ' ' num2str(place_courante+1)
liste_mecs{mec} ',
'],place_courante+1,setdiff(liste_mecs,liste_mecs(mec)),n);
end;
end;

ça me donne

1 A , 1B, 1 C
1 A , 1B, 2 C
1 A , 2B, 2 C
1 A , 2B, 3 C
1 A , 1C, 1 B
1 A , 1C, 2 B
1 A , 2C, 2 B
1 A , 2C, 3 B
1 B , 1A, 1 C
1 B , 1A, 2 C
1 B , 2A, 2 C
1 B , 2A, 3 C
1 B , 1C, 1 A
1 B , 1C, 2 A
1 B , 2C, 2 A
1 B , 2C, 3 A
1 C , 1A, 1 B
1 C , 1A, 2 B
1 C , 2A, 2 B
1 C , 2A, 3 B
1 C , 1B, 1 A
1 C , 1B, 2 A
1 C , 2B, 2 A
1 C , 2B, 3 A

il y a donc des répétitions (normalement 13 classsements seulement pour
3 équipes), et aussi la non prise en compte des "trous" lors des ex-aequo
par exemple, on a (1,1,2) au lieu de (1,1,3) mais ce n'est pas très
grave, tant que ce n'est qu'une question d'écriture. C'est vrai que ça
doit compliquer sérieusement les choses.
Alors comment éviter les répétitions ? Pouvez-vous commenter un poil
votre idée récursive ?
Boris
--
Boris
http://www.pi314.net
Emmanuel Delahaye
2005-04-19 17:22:58 UTC
Permalink
[Posté sur fclc]
Post by Boris
Post by Boris
combien y-a-t-il de classements possibles avec ex-equo entre n variables ?
exemple pour un vecteur de 5 variables (x1,x2,x3,x4,x5)
un classement associé possible (3,3,5,1,2)
ou encore (1,3,4,5,2) ou encore (1,1,1,4,5)
je crois que le problème est plus dur qu'il n'y parait (notamment au niveau
du nombre d'égalités possibles au sein des variables), mais j'ai peut-être
manqué quelque chose...
merci d'avance,
autre problème,
créer un programme court qui les liste tous....
C'est un problèmes d'algorithme, pas de langage. Il y a un forum pour
ça.
--
Emmanuel
The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html
The C-library: http://www.dinkumware.com/refxc.html

"C is a sharp tool"
Boris
2005-04-19 17:34:18 UTC
Permalink
Post by Emmanuel Delahaye
[Posté sur fclc]
Post by Boris
Post by Boris
combien y-a-t-il de classements possibles avec ex-equo entre n variables ?
exemple pour un vecteur de 5 variables (x1,x2,x3,x4,x5)
un classement associé possible (3,3,5,1,2)
ou encore (1,3,4,5,2) ou encore (1,1,1,4,5)
je crois que le problème est plus dur qu'il n'y parait (notamment au
niveau du nombre d'égalités possibles au sein des variables), mais
j'ai peut-être manqué quelque chose...
merci d'avance,
autre problème,
créer un programme court qui les liste tous....
C'est un problèmes d'algorithme, pas de langage. Il y a un forum pour ça.
j'en ai mis le suivi sur fsm mais il me semble que les gars du c, qui
ont l'habitude des algorithmes, des listes, des piles, des arbres et des
tris, peuvent avoir des idées et proposer des programmes sans pour
autant passer leur temps sur fr.comp.algorithmes.
--
Boris
http://www.pi314.net
stef daroist
2005-04-19 18:21:15 UTC
Permalink
Post by Emmanuel Delahaye
C'est un problèmes d'algorithme, pas de langage. Il y a un forum pour ça.
ça va bien oui ????????
Babacio
2005-04-20 07:31:27 UTC
Permalink
"Emmanuel Delahaye"
Post by Emmanuel Delahaye
C'est un problèmes d'algorithme, pas de langage. Il y a un forum pour
ça.
Y a longtemps que je n'ai pas lu fclc... mais je vois depuis ici que
le charte freak de service est toujours hyperactif.
--
Est-ce que la signature d'Olivier Miakinen ne vous
fait pas penser à Bruxelles ?
Targeur fou
2005-04-20 13:02:08 UTC
Permalink
Post by Boris
Post by Boris
Bonjour
combien y-a-t-il de classements possibles avec ex-equo entre n variables ?
Ca je ne sais pas, mais avec et sans ex-aequo, si mes souvenirs de
dénombrement sont bons, ca fait 5^5 possibilités.
Post by Boris
Post by Boris
exemple pour un vecteur de 5 variables (x1,x2,x3,x4,x5)
un classement associé possible (3,3,5,1,2)
ou encore (1,3,4,5,2) ou encore (1,1,1,4,5)
je ne vois pas d'ex-aequo dans (1,3,4,5,2).

[coupé]
Post by Boris
autre problème,
créer un programme court qui les liste tous....
avec ex-aequo seulement ou toutes les possibilités ? J'ai bien une
solution de brute en C avec une complexité algorithmique on ne peut
plus pourrie. Il s'agit d'une version affichant les possibilités avec
ex-aequo uniquement.
#include <stdio.h>

int dejaVu(int * tab, int n)
{
int i, j, res = 0;
for (i=0; i<n; ++i)
for (j=0; j<n; ++j)
if ((i != j) && (tab[j] == tab[i])) {
res = 1;
break;
}
return res;
}

int main(void)
{
int A, B, C, D, E, i=0, tab[5], vect[5][3125];

for(A=1; A<=5; ++A)
for(B=1; B<=5; ++B)
for(C=1; C<=5; ++C)
for(D=1; D<=5; ++D)
for(E=1; E<=5; ++E) {
vect[0][i] = A;
vect[1][i] = B;
vect[2][i] = C;
vect[3][i] = D;
vect[4][i] = E;
++i;
}

i = 0;

for(A=1; A<=5; ++A)
for(B=1; B<=5; ++B)
for(C=1; C<=5; ++C)
for(D=1; D<=5; ++D)
for(E=1; E<=5; ++E) {
tab[0] = vect[0][i];
tab[1] = vect[1][i];
tab[2] = vect[2][i];
tab[3] = vect[3][i];
tab[4] = vect[4][i];
if (dejaVu(tab,5)) {
printf("%d%d%d%d%d\n",
tab[0],
tab[1],
tab[2],
tab[3],
tab[4]);
}
++i;
if ((i % 25) == 0) { getchar(); }
}

return 0;
}

Regis
Continuer la lecture sur narkive:
Résultats de la recherche pour 'dénombrement' (groupes de discussion et listes de diffusion)
6
réponses
Denombrement
démarré 2005-10-10 10:42:36 UTC
fr.sci.maths
20
réponses
cherche aide sur jargon administratif d'un dénombrement
démarré 2006-11-06 14:53:34 UTC
fr.soc.histoire.medievale
33
réponses
Question sur une probailité...
démarré 2018-03-18 17:01:59 UTC
francom.esoterisme
86
réponses
Question sur une probailité...
démarré 2018-03-18 17:01:59 UTC
fr.sci.maths
49
réponses
Critiques
démarré 2004-02-24 15:39:44 UTC
fr.rec.photo
Résultats de recherche pour 'dénombrement' (Questions et réponses)
4
réponses
Espace de Hilbert de l'oscillateur harmonique: dénombrable vs indénombrable?
démarré 2013-05-17 03:04:55 UTC
la physique
1
réponse
Nomenclature d'un éther cyclohexylique et dénombrement des positions de localisant
démarré 2015-06-20 00:31:17 UTC
chimie
8
réponses
Comment un étudiant en physique devrait-il étudier les mathématiques?
démarré 2010-11-05 01:47:06 UTC
la physique
9
réponses
Pourquoi les "degrés" et les "octets" ne sont-ils pas considérés comme des unités de base
démarré 2018-08-01 20:55:24 UTC
la physique
3
réponses
Existe-t-il une généralisation mathématique du nombre d'isomères (structurels et configurationnels) d'un composé donné?
démarré 2014-05-11 18:29:48 UTC
chimie
Sujets non liés mais intéressants
6
réponses
Quelles sont les bonnes sources en ligne pour les cartes historiques?
démarré 2012-03-23 10:36:02 UTC
10
réponses
Y a-t-il un précédent historique à la peur des vaccins?
démarré 2016-09-20 15:28:51 UTC
5
réponses
Y a-t-il déjà eu un cas de centrale nucléaire active dans ou près d'une zone de guerre?
démarré 2019-01-07 14:06:40 UTC
6
réponses
Pourquoi la Russie n'a-t-elle pas maintenu un nombre important de porte-avions?
démarré 2012-07-21 07:54:28 UTC
5
réponses
Quand les Grecs ont-ils cessé de se dire «romains»?
démarré 2014-10-14 23:32:30 UTC
Loading...