// recherche d'un prix cache // le programme fixe au hasard un prix compris entre 1 et 1000 // puis recherche ce prix en adoptant comme strategie de recherche une // recherche par dichotomie // une fois le prix decouvert, le programme affiche le nombre d'essais // qui lui ont ete necessaire pour trouver le bon prix public class PrixLot { public static void main(String[] args) { int prixCherche; // le prix cache a decouvrir int prixPropose; // le prix propose int borneInf = 1; // borne inferieure de l'intervalle de recherche int borneSup = 1000; // borne superieure de l'intervalle de recherche int nbEssais = 0; // nombre d'essais pour trouver le prix // tirage au hasard de prixCherche dans l'intervalle [1 1000] prixCherche = (int) (Math.random() * 1000 + 1); // donne une premiere proposition de prix // on prend le milieu de l'intervalle borneInf borneSup prixPropose = 500; nbEssais = 1; while (prixPropose != prixCherche) { // selon la position du prixPropose, mise a jour de // l'intervalle de recherche System.out.println("prix propose " + prixPropose); if (prixPropose > prixCherche) borneSup = prixPropose - 1; else borneInf = prixPropose + 1; // nouvelle proposition de prix // le prix propose est le milieu de lintervalle de recherche prixPropose = borneInf + (borneSup - borneInf)/2; nbEssais++; } System.out.println("le programme a trouve le prix cache ("+ prixPropose + ") en " + nbEssais + " essais"); } }