#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
int rand_a_b(int min,int max){
return rand()%(max
-min
)+min
; }
char getLettreRandom(int nombreAleatoire)
{
// Tirage de lettre en fonction de sa probabilité d'apparaitre dans un corpus donné de 1 486 104 lettres
// Source wiki.
// On fait correspondre les occurrences avec les lettres.
int occurrences[] = {225947, 121895, 117110,115465,111103,108812,100500,96785,83668,
82762,56269,50003,46335,45521,24975,20889,16351,13822,11298,
8351,5928,4725,2093,1747,745,695,283,};
char lettres[] = "esaitnrulodcpmvqfbghjxyzwk";
int i, total;
char retour = ' '; /* Valeur par défaut au cas où */
for (i=0, total = 0; i < 26; i++)
{
if ( (nombreAleatoire > total) && (nombreAleatoire < total + occurrences[i]))
{
retour = lettres[i];
break;
}
total += occurrences[i];
}
return retour;
}
int main(){
char c , d, e = ' ';
c= getLettreRandom(rand_a_b(0,1486104));
d= getLettreRandom(rand_a_b(0,1486104));
e= getLettreRandom(rand_a_b(0,1486104));
printf("%c\n %c\n %c\n",c
,d
,e
);
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8dGltZS5oPgoKCgppbnQgcmFuZF9hX2IoaW50IG1pbixpbnQgbWF4KXsKCiAgICByZXR1cm4gcmFuZCgpJShtYXgtbWluKSttaW47Cn0KCgpjaGFyIGdldExldHRyZVJhbmRvbShpbnQgbm9tYnJlQWxlYXRvaXJlKQogICAgewoJCS8vIFRpcmFnZSBkZSBsZXR0cmUgZW4gZm9uY3Rpb24gZGUgc2EgcHJvYmFiaWxpdMOpIGQnYXBwYXJhaXRyZSBkYW5zIHVuIGNvcnB1cyBkb25uw6kgZGUgMSA0ODYgMTA0IGxldHRyZXMKCQkvLyBTb3VyY2Ugd2lraS4KCgoKCQkvLyBPbiBmYWl0IGNvcnJlc3BvbmRyZSBsZXMgb2NjdXJyZW5jZXMgYXZlYyBsZXMgbGV0dHJlcy4KICAgICAgIGludCBvY2N1cnJlbmNlc1tdID0gezIyNTk0NywgMTIxODk1LCAxMTcxMTAsMTE1NDY1LDExMTEwMywxMDg4MTIsMTAwNTAwLDk2Nzg1LDgzNjY4LAoJCQkJCQkJODI3NjIsNTYyNjksNTAwMDMsNDYzMzUsNDU1MjEsMjQ5NzUsMjA4ODksMTYzNTEsMTM4MjIsMTEyOTgsCgkJCQkJCQk4MzUxLDU5MjgsNDcyNSwyMDkzLDE3NDcsNzQ1LDY5NSwyODMsfTsKICAgICAgIGNoYXIgbGV0dHJlc1tdID0gImVzYWl0bnJ1bG9kY3BtdnFmYmdoanh5endrIjsKCgogICAgICAgaW50IGksIHRvdGFsOwoKICAgICAgIGNoYXIgcmV0b3VyID0gJyAnOyAvKiBWYWxldXIgcGFyIGTDqWZhdXQgYXUgY2FzIG/DuSAqLwogICAgICAgZm9yIChpPTAsIHRvdGFsID0gMDsgaSA8IDI2OyBpKyspCiAgICAgICB7CiAgICAgICAgICAgaWYgKCAobm9tYnJlQWxlYXRvaXJlID4gdG90YWwpICYmIChub21icmVBbGVhdG9pcmUgPCB0b3RhbCArIG9jY3VycmVuY2VzW2ldKSkKICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgcmV0b3VyID0gbGV0dHJlc1tpXTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICB9CiAgICAgICAgICAgdG90YWwgKz0gb2NjdXJyZW5jZXNbaV07CiAgICAgICB9CiAgICAgICByZXR1cm4gcmV0b3VyOwogICAgfQoKCgppbnQgbWFpbigpewoKCglzcmFuZCh0aW1lKE5VTEwpKTsKCgljaGFyIGMgLCBkLCBlID0gJyAnOwoJYz0JZ2V0TGV0dHJlUmFuZG9tKHJhbmRfYV9iKDAsMTQ4NjEwNCkpOwoJCWQ9CWdldExldHRyZVJhbmRvbShyYW5kX2FfYigwLDE0ODYxMDQpKTsKCQkJZT0JZ2V0TGV0dHJlUmFuZG9tKHJhbmRfYV9iKDAsMTQ4NjEwNCkpOwoJCQkKCXByaW50ZigiJWNcbiAlY1xuICVjXG4iLGMsZCxlKTsKCgoKCWdldGNoYXIoKTsKCn0K