Methode de vote condorcet sous java

Description

le programme calcule selon la méthode de Condorcet qui est le choix d'un candidat (l'élu) à partir d'une élection ..
elle procède en comparant les candidats deux à deux : c'est à dire par exemple on compte combien de fois 'a' est élu avant 'b' et combien 'b' est élu avant 'a' ...etc
il prend en paramètre:
le nombre de candidat;
le nombre de personnes qui votent;
les noms des candidats: des caractère {'a', 'b', ....}
exemple :
a a a c c b e
b d d b d c c
c b b d b d d
d e e e a a b
e c c a e e a

est la matrice de vote;

Source / Exemple :


import java.util.Scanner;

public class meth_condorcet {
	static int max=0;
	static int cmpChar;
	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		System.out.println("la methode de condoncet");
		System.out.println();
		System.out.println("entrer le nombre de candidats :");
		System.out.println("******************************");
		int cand=s.nextInt();
		System.out.println("entrer le nombre de personnes qui votent :");
		System.out.println("******************************************");
		int per=s.nextInt();
		char t_cand[]=new char [cand] ;
		int t_comp[]=new int[cand];
		char t_vote[][]=new char[cand][per];
		int t_three[][]=new int[cand][cand];
		System.out.println("entrer les noms des candidats :");
		System.out.println("*****************************");
		for (int i=0; i<cand;i++ ){
			t_cand[i]=s.next().charAt(0);
		}
		for (int i=0; i<cand;i++ ){
			System.out.print(t_cand[i]+" 	");
		}
		System.out.println();
		System.out.println("la matrice de vote :");
		System.out.println("********************");
		for (int c=0; c<cand;c++){
			for (int p=0;p<per; p++){
				t_vote[c][p]=s.next().charAt(0);
			}
		}
		//affichage de vote :
		for (int c=0; c<cand;c++){
			for (int p=0;p<per; p++){
				System.out.print(t_vote[c][p]+" 	");
			}
			System.out.println();
		}
		//---------------------------------------------------------------------------
		//calcule de la matrice de choix:		
		int ps1 = 0;int ps2 = 0;
		
		for (int p=0;p<per; p++){			
			for(int cc=0;cc<cand;cc++){
				for(int ccc=0; ccc<cand ;ccc++){
					for(int i=0; i<cand;i++){
						if (t_cand[cc]==t_vote[i][p]){						
						ps1=i;
						}
					}
					for(int i=0; i<cand;i++){						
						if(t_cand[ccc]==t_vote[i][p]){
							ps2=i;
						}
					}	
						if(ps1<=ps2){
							t_three[cc][ccc]=t_three[cc][ccc]+1;
						}
					}					
				}
			}		
		
		
		//-----------------------------------------------------------------------------
		/*

  • matrice de teste
a a a c c b e b d d b d c c c b b d b d d d e e e a a b e c c a e e a
  • */
//affichage des resultats: System.out.println("la matrice de choix:"); System.out.println("----------------------"); for(int i=0;i<cand;i++){ for(int j=0;j<cand ;j++){ System.out.print(t_three[i][j]+" "); } System.out.println(); } //le calcule du choix social for(int i=0;i<cand;i++){ for(int j=0;j<cand;j++){ t_comp[i]=t_comp[i]+t_three[i][j]; } t_comp[i]=t_comp[i]-per; if(max<t_comp[i]){ max=t_comp[i]; cmpChar=i; } } System.out.println("le choix social est: "+t_cand[cmpChar]); } }

Conclusion :


voilà un exemple d'exécution de la méthode Condorcet:

la methode de condoncet

entrer le nombre de candidats :

5
entrer le nombre de personnes qui votent :

7
entrer les noms des candidats :

a b c d e
a b c d e
la matrice de vote :

a a a c c b e
b d d b d c c
c b b d b d d
d e e e a a b
e c c a e e a
a a a c c b e
b d d b d c c
c b b d b d d
d e e e a a b
e c c a e e a
la matrice de choix:
----------------------
7 3 3 3 5
4 7 4 3 6
4 3 7 5 4
4 4 2 7 6
2 1 3 1 7
le choix social est: b

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.