Programme en C: calcul de probabilité de rencontre
Voilà un petit programme qui permet de calculer le pourcentage de rencontre d'un pokémon après x combat sans le voir, utile quand vous cherchez à attraper un pokémon rare ou même un shiny (mais faut être fou), il suffit juste de connaitre le pourcentage de rencontre au départ.
Par exemple, pour Hexagel, il a 1% de chances d'apparaitre au mont foré (PKMN Blanc/Noir). Et bah vous utilisez le programme ainsi:
./pkmn 1
et vous obtenez:
combat 10, pourcentage:10
combat 22, pourcentage:20
combat 35, pourcentage:30
combat 51, pourcentage:40
combat 68, pourcentage:50
combat 90, pourcentage:60
combat 119, pourcentage:70
combat 158, pourcentage:80
combat 225, pourcentage:90
combat 528, pourcentage:100
ce qui signifie qu'au 10eme combat, il à 10% de chances d'apparaitre au moins une fois, au 22eme 20%, au 35eme 30%, etc.
Savoir combien de match au maximum on va devoir se taper pour trouver ledit Pokémon, je vous assure que ça aide à patienter^^ (bon là 528 match, vous serez morts avant^^)
Donc voilà, pour ceux que ça intéresse et qui aurait du mal à faire fonctionner le programme, faites le moi savoir ;)
Le programme:
/*
** main.c for truc in /u/all/gayfis_c/public/
**
** Made by cagri gayfish
** Login <toubla_g@epitech.net>
**
** Started on Wed Mar 16 21:59:49 2011 cagri gayfish
** Last update Thu Mar 17 00:43:04 2011 cagri gayfish
*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int ac, char **av)
{
int i;
float pc;
float res;
int npc;
int test;
if (ac == 2)
{
pc = atoi(av[1]);
pc = 100 / pc;
i = 0;
res = 0;
npc = 0;
test = 10;
while (npc != 100)
{
res += pow(((pc-1)/pc), i) * (1/pc);
npc = round(100 * res);
if (npc >= test)
{
printf("combat %d, pourcentage:%d\n", i+1, npc);
test += 10;
}
i++;
}
}
else
printf("Usage: ./pkmn PERCENT.\n");
return (0);
}
P.S: sur ce site je peux pas indenter mon code, mais bon évidemment qu'en temps normal il l'est hein^^
Article ajouté le Samedi 19 Mars 2011 à 18h04 |
|