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

Mes premiers programme en c++ :bave:

Iliketo
Iliketo
Niveau 10
24 août 2012 à 11:28:22

Chris j'ai pas vraiment envie d'apprendre le vector je veut les utiliser car j'en ai besoin ^^
vous allé me prendre pour un suicidaire mais j'ai envie de programmer un code qui crypte les message , donc j'ai fait 2 tableau .
le premier contient toute les lettre de l'alphabet + espace ( donc sa taille est 27 )
le second pareille que le premier sauf que c'est un vector pourquoi pas un tableau normal ? vous allé comprendre

donc en gros je veut utiliser rand pour piocher un nombre naturel au hasard x dans le groupe [0,26]
après avoir pioché x je ferai tableau[0] = vector[x]
donc la lettre "a" de mon tableau est devenu une lettre tiré au hasard .
je vais faire pareille pour tous les autre lettre sauf qu'il y a un problème je ne veut pas que rand tire 2 fois la même lettre
alors je modifie le code :
tableau[0] = vector[x]
vector.erase(begin() + x)
b--; ( b étant le nombre maximum que rand peut pioché )

donc voila :-)

Iliketo
Iliketo
Niveau 10
24 août 2012 à 11:40:11

Je précise que se code crype et décrypte les message pourvue qu'on a la clé
la clé est en faite le nouvel alphabet de mon premier tableau ( bon c'est une clé de 27 caractère mais c'est mieux que rien :hap: )

chris_27
chris_27
Niveau 10
24 août 2012 à 11:47:40

« Chris j'ai pas vraiment envie d'apprendre le vector je veut les utiliser car j'en ai besoin ^^ » :d) non, ça c'est faux. Vu ce que tu as dis, c'est FAUX, FAUX et FAUX. Tu n'utilises que des primitives propres aux listes (doublement chainées) donc c'est list dont tu as potentiellement besoin.

Anyway, en lisant ton problème, on comprend vite que tu es trop vite tomber dans la technique, et surtout que tu n'as pas assez réfléchis à la méthode qui te permettra de faire ce que tu veux vraiment (à savoir, tirer un permutation au hasard).

Je te suggère d'essayer déjà de créer une telle permutation à la main sur une feuille de papier. Ensuite, analyse comment tu fais... je ne pense vraiment pas que ta méthode nécessite de prendre une paire de ciseaux pour couper des bouts de feuilles. :-)))

hyrulink2
hyrulink2
Niveau 7
24 août 2012 à 12:20:56

Chris: Même une liste ça irait pas puisqu'il veut du random access avec vector[x].

Enfin pour info iLIKEto, il existe dans la STL(la bibliothèque standard) une fonction qui fait ce que tu veut faire, d'une autre façon. Mais comme dit Chris ça te fait un bon exercice de le trouver tout seul.

Iliketo
Iliketo
Niveau 10
24 août 2012 à 12:21:00

Arf j'ai oublier que j'utilisé des string :hap:
les string peuvent être modifier a se que j'ai compris donc pas besoin de vector en effet :-)

Et sinon j'ai fait comme tu ma dit et donc j'ai remplacer chaque lettre au hasard sans jamais faire de doublon mais c'est la le problème : les doublons c'est pour sa que j'ai eu l'idée des vector avant que je me rappelle que je manipulé des string :o))

Je peut aussi remplacer chaque lettre de mon string en suivant une suite logique mais je veut que les lettre soit mélangé totalement par hasard de sorte a se que chaque mélange est sa propre clé :)

Ceci dit j'avais oublier les apostrophe donc la clé sera en 28 caractère :p)

Et la j'ai un nouveau problème : errors 'string' does not name a type

Je peut pas renvoyai de string par une fonction ? :(

chris_27
chris_27
Niveau 10
24 août 2012 à 12:32:39

hyrulink2: c'est une liste de taille 28, donc en pratique ça irait. Le gros du soucis, c'est surtout d'éviter d'éclater le vector à chaque itération à mon avis.

Cela étant dit, il n'a pas besoin de la STL pour faire ce qu'il veut (et il n'a pas le niveau en C++ pour se permettre la STL). Donc c'est pas par là qu'il faut l'envoyer.

iLIKEto: c'est encore pire de couper des std::string... :peur:

« sans jamais faire de doublon mais c'est la le problème » :d) oui, c'est là le problème. Tu résous ça comment sur ta feuille de papier ?

Iliketo
Iliketo
Niveau 10
24 août 2012 à 13:04:56

J'évite se qui on déjà étais copier :(

chris_27
chris_27
Niveau 10
24 août 2012 à 13:08:25

Comment ?

Iliketo
Iliketo
Niveau 10
24 août 2012 à 13:19:19

a\ a
b \ b
c \c
d d
comme la d est relié au a je n'y touche plus :hap:

Iliketo
Iliketo
Niveau 10
24 août 2012 à 13:21:01

et merde dessein a la con :hap:
a\
b.\
c..\
d...d

chris_27
chris_27
Niveau 10
24 août 2012 à 13:41:35

Et donc, quand tu tires ton d au hasard, tout ce qu'il te faut, c'est de savoir si le d a déjà était pris, c'est bien ça ? :-)

Comment faire ça efficacement avec des tableaux ?

Iliketo
Iliketo
Niveau 10
24 août 2012 à 13:54:53

Ma manière est de supprimé le d du tableau comme sa :d) http://pastebin.com/pq3tRLmy
mais toi tu veut m'apprendre a pas utilisé les vector donc il doit y avoir une autre méthode mais pour être franc je vois pas du tous se que c'est :-(

chris_27
chris_27
Niveau 10
24 août 2012 à 14:07:38

C'est à ce moment là que tu fais une erreur de raisonnement.

Ce que tu veux vraiment, c'est "savoir si la lettre que tu viens de tirer au hasard à déjà été tirée". (On est bien d'accord sur ça ?)

Or, sur le dessin, tu fait assurément autre chose que de supprimer le d du dessin. :(

Iliketo
Iliketo
Niveau 10
24 août 2012 à 14:19:42

"savoir si la lettre que tu viens de tirer au hasard à déjà été tirée".
si je supprime toute les lettre que je tire c'est impossible que je les tire une second fois non ? :(
car l'objectif premier du code c'est bien de cryptai et pas de savoir si j'ai tirai la lettre ou non donc de faire un nouvelle alphabet un exemple
alphabet français : abcdefghijklmnopqrstuvwxyz ( sans oublier l'espace a la fin )
nouvelle alphabet : fnq jdaiokwzycshgxbplrtmuev ( noter l'espace entre le q et le j cette espace remplace la lettre :
D noter aussi le v a la fin le v remplace l'espace)

on pourrai coder : je vais
par : kjvtfop

J'ai bien sure pas encore fini le code mais j'y travail :-)

chris_27
chris_27
Niveau 10
24 août 2012 à 14:24:57

« si je supprime toute les lettre que je tire c'est impossible que je les tire une second fois non ? :( » :d) Si c'est vraiment ta seule vision des choses, alors ce qu'il te faut vraiment c'est std::set : http://www.cplusplus.com/reference/stl/set/

Iliketo
Iliketo
Niveau 10
24 août 2012 à 14:32:56

C'est pas vraiment la seul il y a aussi de mettre tous les lettre tiré dans un 3 eme tableau et quand je tire une nouvelle lettre je vérifie qu'elle n'est pas la même qu'une lettre sur le tableau 3 mais a quoi bon d'utiliser une solution plus longue :hap:

chris_27
chris_27
Niveau 10
24 août 2012 à 14:40:58

« C'est pas vraiment la seul il y a aussi de mettre tous les lettre tiré dans un 3 eme tableau » :d) mettre des choses dans un paquet, ça se traduit aussi par utiliser std::set :-)))

Cela dit, avec ce nouveau message, on se rapproche de ce que j'ai en tête. Et crois moi, c'est plus court, plus simple à coder, et terriblement plus efficace que ce que tu cherchais à faire initialement. :oui:

Iliketo
Iliketo
Niveau 10
24 août 2012 à 14:49:52

d'accord je vais essayai ta méthode :-)

hyrulink2
hyrulink2
Niveau 7
24 août 2012 à 14:54:16

"Cela étant dit, il n'a pas besoin de la STL pour faire ce qu'il veut (et il n'a pas le niveau en C++ pour se permettre la STL). Donc c'est pas par là qu'il faut l'envoyer. "
Oui, on est d'accord, ce que je voulait dire c'est que c'est à lui de trouver l'algo, pas la fonction.

Indice pour OP: tu n'a besoin que d'un tableau, pas plus.

Par curiosité j'ai testé l'algo que voulait faire iLIKEto à la base avec un vecteur et avec une liste séparément, il s'est avéré que c'était 3 fois plus long avec une liste, ça doit être à cause des allocations dynamiques en plus.

chris_27
chris_27
Niveau 10
24 août 2012 à 14:57:31

hyrulink2: heu... sans tableau (ou set, ou whatever pour garder en mémoire les choix déjà pris) je ne sais pas faire moi (enfin si, mais carrément pas comme veut le faire l'OP, et pas forcément mieux).

Sinon, ton test me suggère plutôt que les temps d'accès ne sont peut-être pas négligeables du tout en fait. :rouge:

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