random en fonction d'une chaine de caractere
Je cherche a faire correspondre a une chaine de caractere un entier entre 0 et N.
exemple, entre 0 et 100:
chaine= toto, resultat=57
chaine=tototot, resultat=23
chaine=truc, resultat=79
le resultat devraient etre aleatoire (par exemple, ce n'est pas forcement le chaine la plus longue qui genere le plus grand nombre), mais toujours identique (une meme chaine doit toujours sortir le meme nombre)
je n'ai aucune idee de comment m'y prendre.
auriez vous une piste ?
Re: random en fonction d'une chaine de caractere
Citation:
Envoyé par tatayoyo
auriez vous une piste ?
Déjà pour être sûr d'être entre 0 et N, utilise à la fin de ces propositions une vérification de signe et un modulo...
L'imagination est la limite de ta question:
- renvoie 3*(le nombre de voyelles) + 7*(le nombre de consonnes)
- fait un xor entre tous les caractères
- transforme les caractères en valeurs flottantes, fait les passer par sin/cos/tan, multiplies par 1245, prend la valeur entière
- avec la chaîne de caractère, calcule le nombre d'anagrammes possible utilisant un dictionnaire et rend ce nombre
- si le mot termine par "er" retourne 4 sinon retourne 5*(le nombre de a) sauf s'il y a un "b" dedans, à ce moment là, retourne 5+le nombre de z...
Franchement, y a le choix...
Re: random en fonction d'une chaine de caractere
Citation:
Envoyé par fearyourself
- fait un xor entre tous les caractères
Comment faire un xor entre deux caracteres ?
Citation:
Envoyé par fearyourself
- transforme les caractères en valeurs flottantes, fait les passer par sin/cos/tan, multiplies par 1245, prend la valeur entière
comment faire la conversion caractere en valeur flottante ?
si je fais
Code:
1 2 3 4
|
char var[10];
strcpy(var,"c");
printf("%f",atof(var)); |
il me sort 0.00000 a tout les coups.
je ne comprens pas non plus le sin/cos/tan multiplie par 1245.
une precision (qui a peut etre de l'importance) : il peut y avoir des chiffres dans ma chaine de caractere.
Re: random en fonction d'une chaine de caractere
Citation:
Envoyé par tatayoyo
Citation:
Envoyé par fearyourself
- fait un xor entre tous les caractères
Comment faire un xor entre deux caracteres ?
Citation:
Envoyé par fearyourself
- transforme les caractères en valeurs flottantes, fait les passer par sin/cos/tan, multiplies par 1245, prend la valeur entière
je ne comprends pas non plus le sin/cos/tan multiplie par 1245.
une precision (qui a peut etre de l'importance) : il peut y avoir des chiffres dans ma chaine de caractere.
Re: random en fonction d'une chaine de caractere
Citation:
Envoyé par tatayoyo
Je cherche a faire correspondre a une chaine de caractere un entier entre 0 et N.
C'est une question pour le forum "algorithmes"
Le mot magique est hashcode. :google: est ton ami.