CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Algo

CYBER_BOB
CYBER_BOB
Niveau 10
04 janvier 2005 à 22:47:11

Bonjour a tous,
alors voila cela fait un moment que je cherche a faire un alogrithme de Brute Force généraliste, valable pour n´importe quel longueur... pour ce qui ne connaisse pas, un algorithme de Brute Force génére toutes possibilité ( pour trouver une mot de passe généralement)... moi ce qui m´interresse plus, c´est le point de vue algorithmique, de toute façon le brute force de nos jours ne sert pas a grand chose...
apres quelques temps j´ai reussi a faire un brute force numerique... je m´attaque donc a la génération de mot de passe des caracteres et c´est la que je bloque, ce qui me permet de constater que mon niveau en algorithmie n´est pas très elevé...
j´ai donc besoin d´aide, pour faire la génération de toute les possibilité avec des caracteres... voici la fonction que j´ai commencé à écrire:

[Code]// fonction de génération de possibilité " caractère minuscule"
int MinCarGen(int longueur)
{
int i, j, k; / / variable pour for
/ / génération des possibilites
for(i=0; i < 26; i++)
{
printf("%c\n", ( i+97)); / / ecriture
/ / rajoute les caracteres
for(j=1; j < longueur; j++)
{
for(k=0; k < 26; k++)
{
/ / a partir d´ici ca ne vat plus
printf("%c", ( i+97)); / / caractere courant
printf("%c", ( k+97));
printf("\n");
}
}
}
return 1;
}[/Code]

voila je suis donc bloqué, et j´aimerais que l´on m´aide un peu pour que je puisse avancé...
merci par avance...
Bob...

" La chance accorde ses faveur aux esprits avertis..."

dnob700
dnob700
Niveau 10
04 janvier 2005 à 23:35:21

tu ne t´en sortira pas avec une boucle comme ça, sinon il t´en faudrait autant que longueur et ça va pas.

donc ce que tu pourrait faire :

/ /Là on initialise un tableau qui contiendra le mot de passe généré
char *code;
int i;
code=new char[longueur+1];
for ( i=0;i<longueur;code[i++]=´a´);
code[i]=0;
while(code[longueur-1]<=´z´)
{
code[0]++;
i=0;
while(code[i]==´z´&&[i]!=0)
{
code[i]=´a´;
if ( i<longueur) code[++i]++;
}
cout < < code < < endl;//je sais pas utiliser printf
}

finit.

si tu comprend pas ce que ça fait demande moi.
je ne l´ai pas testé, mais je pense que ça devrait marcher

CYBER_BOB
CYBER_BOB
Niveau 10
05 janvier 2005 à 01:37:11

tout d´abord merci pour ton aide... alors tout d´abord, je tiens a signaler que ton code ne me génére pas correctement les mots de passe...
ensuite ton code ne fait pas exactemement ce que je veux, mais la c´est ptete moi qui me suis mal exprimé...
en fait si j´entre 3 en longueur a généré, je veux que le pogramme me génére toutes les possibilité avec aux maximum 3 caracteres:
a
. ..
z
aa
ab
ac
. ..
aaa
aab
. ..
aba
abc
. ..

tout ca jusqy´a zzz si longueur égal 3. j´ai fait le code pour la generation numerique, mais la c´est beaucoup plus compliqué... c´est pour cela que je demande de l´aide...
sinon pour info la generation des possibilité numerique pour une longeur x, je l´ai faite avec 3 boucles for et ca marche tres bien, alors je me suis dit que peut etre pour les caracteres ca marcherais pareil... mais visiblement non...
aide moi encore un peu stp

CYBER_BOB
CYBER_BOB
Niveau 10
05 janvier 2005 à 01:38:11

en fait si on entre un longueur 3, l´algorithme doit générer les possibilité à 1, 2 et 3 caracteres ! !!

MrGoTo
MrGoTo
Niveau 8
05 janvier 2005 à 15:50:57

Tiens jvais essayer de coder ça. Si je trouves je te fais part de mon code.

CYBER_BOB
CYBER_BOB
Niveau 10
05 janvier 2005 à 17:57:37

ok Mr Goto pas de probleme... cela fait tellement longtemps que je chercher lol
ca commence a me prendre la tete
:)

dnob700
dnob700
Niveau 10
05 janvier 2005 à 22:33:59

" alors tout d´abord, je tiens a signaler que ton code ne me génére pas correctement les mots de passe... " ?
Il fait quoi ? je viens de le tester, il marche parfaitement.

si tu veux qu´il fasse toute les longueur, c´est vraiment pas compliqué mais bon, regarde, il suffit de rajoutter une boucle :

int MinCarGen(int LongueurMax)
{
char *code;
int i;
int longueur;
for ( longueur=1;longueur<=LongueurMax;longueur++)
{
code=new char[longueur+1];
for ( i=0;i<longueur;code[i++]=´a´);
code[i]=0;
while(code[longueur-1]<=´z´)
{
code[0]++;
i=0;
while(code[i]==´z´&&[i]!=0)
{
code[i]=´a´;
if ( i<longueur) code[++i]++;
}
cout < < code < < endl;
}
delete[] code;
}
}

MrGoTo
MrGoTo
Niveau 8
06 janvier 2005 à 00:00:09

DNOB tu veux pas mettre ton code ailleurs ( wall ou autre) paske ça file un paté là !

dnob700
dnob700
Niveau 10
06 janvier 2005 à 00:15:49

ben non, sinon il va disparaitre dans 3 jours.

CYBER_BOB
CYBER_BOB
Niveau 10
06 janvier 2005 à 00:22:40

dnob700 < < je te promet ton code me génére bien kelke caractere, mais il me génére des caractere en plus et ki ne sont pas des lettres ! !!

dnob700
dnob700
Niveau 10
06 janvier 2005 à 21:30:58

http://wall.cours-info.net/?id=322&numero=non

oui, en fait c´est juste l´appel à cout qui était mal fait, j´aurais du dire : cout < < *code < < endl;
mais alors il comprend pas que c´est une chaine.
donc voila une version qui marche ( j´ai juste remplacé *code par code[255] )

CYBER_BOB
CYBER_BOB
Niveau 10
06 janvier 2005 à 22:41:18

alors ton programme marche nickel :) rien a dire et fait parfaitement ce que je veux :)
j´ai juste deux truc a dire:
alors tout d´abord dans ton code le stdafx n´a rien a faire :)
et sinon g reussi a trouver un bug ; ), en fait ton programme commence a la lettre b ( caractere apres a) et se termine à { ( caractere apres z).. voila sinon rien a signaler c nickel, merci beaucoup...
bonne prog a vous
bob

CYBER_BOB
CYBER_BOB
Niveau 10
06 janvier 2005 à 23:10:26

en fait pour etre plus preci sur ce caractere ´{´, il apparait lors de la derniere possibilité, par exemple:

aa{ => pour 3 caractere
a{ => pour 2 caractere

et en fait jarrive pas a le supprimer, mais sinon c du tres bon boulot, j´ai réparé le fait ke le a naparait pas o debut la cause, le code[0]++ qui doit etre a la fin et non au debut...

CYBER_BOB
CYBER_BOB
Niveau 10
06 janvier 2005 à 23:16:28

voila mon dernier post de ce soir juste pour donner ma version de l´algorithme, qui marche sans " bug", je dirai, donc sans l´accolade et qui genere le ´a´:

  1. include < iostream>

using namespace std;
int MinCarGen(int LongueurMax);
int main()
{
int a;
MinCarGen(2);
cin > > a;
return 0;
}

int MinCarGen(int LongueurMax)
{
char code[255];
int i;
int longueur;
for ( longueur=1;longueur<=LongueurMax;longueur++)
{
for ( i=0;i<longueur;code[i++]=´a´);
code[longueur]=0;
while(code[longueur-1]<=´z´)
{
i=0;
while(code[i]>´z´ && code[i+1]!=0)
{
code[i]=´a´;
code[++i]++;
}
if(code[i] ! = ´{´)
cout < < code < < endl;
code[0]++;
}
}
return 0;
}

sinon je tiens encore a remercier dnob pour son travail et l´aide qu´il a pu m´apporter...
:merci: , bonne annee et bonne prog

dnob700
dnob700
Niveau 10
07 janvier 2005 à 00:05:16

t´as raison pour la place de l´incrémentation.

pour le stdafx j´ai juste copier mon code depuis VC++ et c´est un header qu´il utilise pour accélérer la compilaton, mais effectivement ça ne sers à rien sinon ( surtout dans un projet comme celui là).

CYBER_BOB
CYBER_BOB
Niveau 10
12 janvier 2005 à 20:56:22

salut,
c´est encore moi, en ce moment j´essai de modifié ton programme pour qu´il me génére des grand et petit caractere en meme temps ( et pas qu´il fasse la distinction)... mais j´ai du mal... ptete parce que je ne comprend pas ton code a la perfection, tu pourrais pas me faire une tite version, stp, pour que je vois...
Merci par avance
bob

dnob700
dnob700
Niveau 10
12 janvier 2005 à 21:13:29

en gros on augmente le dernier caractère de la chaine ( ou le premier ça dépend du coté dont on regarde ! ) et quand il est trop grand on augmente le suivant.
si le suivant est trop grand aussi alors on augmente le suivant encore et ainsi de suite jusqu´à la fin de la chaine.
si le dernier caractère est trop grand alors on sort.

CYBER_BOB
CYBER_BOB
Niveau 10
12 janvier 2005 à 22:08:02

bon ben voila ma version modifié, c´est pas optimiser, mais ca marche:

/ / fonction de génération du dictionnaire " caractère minuscule + majuscule"
int MinMaxCarGen(char fichier[50], int LongueurMax)
{
FILE *gen; / / pointeur sur fichier à générer
char code[255]; / / tableau contenant le code
int i; / / indice tableau
int longueur; / / longueur en traitement

// ouverture fichier
if((gen = fopen(fichier, " w")) == NULL)
return 0; / / erreur

// on traite toutes les longueurs possible jusqu´a longueurmax
for ( longueur=1; longueur < = LongueurMax; longueur++)
{
// marque de fin de génération de longueur
// initialisation du premier " mot"
for ( i=0; i < longueur; code[i++] = ´A´)
code[longueur] = 0;

// on fait toute les lettres
while(code[longueur-1] < = ´z´)
{
i = 0; / / init indice
while(code[i] > ´z´ && code[i+1] ! = 0)
{
code[i] = ´A´;
code[++i]++;
}

// le dernier caractere est une { ou un [, on ne la compte pas
if((´A´ < = code[i] && code[i] < = ´Z´) || ( ´a´ < = code[i] && code[i] < = ´z´))
fprintf(gen, " %s\n", code);
code[0]++; / / caractere suivant
}
}
fclose(gen); / / ferme le fichier
return 1;
}

MathieuN7
MathieuN7
Niveau 10
13 janvier 2005 à 18:03:16

mais ça consiste en quoi l´algo? jcomprends pas bien...

CYBER_BOB
CYBER_BOB
Niveau 10
13 janvier 2005 à 18:33:50

en fait, il fait toutes les combinaisons possibles avec un jeu de caracteres... par exemple, avec le je suivant 1, 2 et 3 on peut faire:

1
2
3
11
12
13
21
22
23
111
112
113
121
122
123
131
132
133
211
212
213
221
222
223
231
232
233
311
312
313
321
322
323
331
332
333

voila ce qu´il fait :)

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment