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

C tableau int multi dimensions

_ninjadefuse_
_ninjadefuse_
Niveau 7
19 janvier 2016 à 09:46:39

bonjour ,

Je n'arrive pas a me visualiser un tableau d'int a 4 dimensions int[10][10][10][5]; comment est ce que sa se représente visuellement ? C'est quoi l'équivalent en c++ avec des list par exemple

Lacina
Lacina
Niveau 9
19 janvier 2016 à 09:58:41

Pour te le représenter visuellement, imagine toi un cube dans la 4ème dimension. [[sticker:p/1jnh]]

En gros, avec int[10][10][10] tu as un cube de 10x10x10 int.
Et en rajoutant [5], tu multiplies ce cube par 5. C'est comme en fait si tu avais 5 cubes contenant 1000 int chacun. Et tu peux accéder à celui que tu souhaites en modifiant le dernier indice.

Message édité le 19 janvier 2016 à 09:59:18 par Lacina
LEpigeon-888
LEpigeon-888
Niveau 12
19 janvier 2016 à 10:25:29

C'est plus simple d'imaginer le tableau linéairement (comme il est vraiment stocké dans la ram (à peu près du moins)) qu'en plusieurs dimensions (surtout quand t'as plus de 3 dimensions).

Genre un tableau [2][2][2][3] ça ressemblerait à ça : https://image.noelshack.com/fichiers/2016/03/1453195523-tableau-multi-dim.png

EDIT: Après selon les langage/PC (je sais pas de quoi ça dépend), les tableau sont "inversé", genre moi j'ai représenté 2 élément présent deux fois eux même présent deux fois eux même présent trois fois, et des fois ça peut être l'inverse, c'est à dire 3 éléments présent deux fois eux même présent deux fois eux même présent deux fois, mais pour toi ça change pas grand chose (à moins que t'ai besoin de faire de l'optimisation pour le parcours de tableau).

Message édité le 19 janvier 2016 à 10:28:59 par LEpigeon-888
Methacracker
Methacracker
Niveau 1
19 janvier 2016 à 11:48:10

Tiens, ma vision des différentes dimensions. Ca m'a bien aidé au début pour bien comprendre comment fonctionne la quatre dimension. (En réalité c'est un peu plus compliqué, mais ça fonctionne bien en programmation.)

Une fois que t'auras bien pigé la 4ème dimensions, tu seras vite capable de visualiser la 5ème avec ce plan, etc ...

Remarquez ma qualité de coloriage digne d'un primaire. :noel:
https://image.noelshack.com/fichiers/2016/03/1453200478-12606829-1758412487703470-910330065-n.jpg

Le dernier nombre représentant à chaque dimensions les différentes couche de dimension précédentes qui créer le tableau final.
Ainsi, pour la quatrième dimension, le dernier nombre représente les numéros des cubes formant le tesseract (Excusez la faute immonde sur le dessin)

(Représentation d'un tesseract ou hypercube, cube de 4ème dimension : https://upload.wikimedia.org/wikipedia/commons/5/55/Tesseract.gif
Mais c'est clairement pas ce qui t'aidera pour la visualisation.)

Message édité le 19 janvier 2016 à 11:50:41 par Methacracker
Methacracker
Methacracker
Niveau 1
19 janvier 2016 à 11:54:29

Tu peux t'entrainer en essayant de te situer dans l'hypercube.
Par exemple, [1][0][1][2] représente le DEUXIEME carré [1][0][1][2] de la PREMIERE ligne [1][0][1][2] de la DEUXIEME face [1][0][1][2] du TROISIEME cube [1][0][1][2] du tesseract de dimension 4*4*4*4

Après t'as plus qu'à transformer ça avec le lexique du codeur. :-)))

Message édité le 19 janvier 2016 à 11:55:33 par Methacracker
GrandeGuerre
GrandeGuerre
Niveau 11
19 janvier 2016 à 13:06:38

Ca peut sembler débile, mais je trouve que la logique des Shadok marche bien. Alors eux, de base, c'est pour compter en base 4, mais on peut le visualiser aussi pour ce cas, je trouve, vu le schéma de LePigeon. :oui:

https://www.youtube.com/watch?v=lP9PaDs2xgQ

(Je conseille de regarder dès le départ si vous connaissez pas l'univers des Shadok, histoire de comprendre, vous allez y perdre à peine une minute)

Message édité le 19 janvier 2016 à 13:07:35 par GrandeGuerre
Bazaran
Bazaran
Niveau 9
19 janvier 2016 à 20:06:04

Tu imagine juste un tableau à l’intérieur de chaque case du celui de niveau précédent.

T[3][3][3][3] :

T[3][3][3][3] est le premier niveau du tableau (1 dimension). Dans chaque case de ce tableau 1D tu vas créer un tableau à trois cases (T[3][3][3][3]) et ainsi de suite.

Si la 4ème dimension t’intéresses Micmaths à fait un série de vidéo dessus :ok: :d) https://www.youtube.com/user/Micmaths/videos

TintinMage
TintinMage
Niveau 10
19 janvier 2016 à 22:39:31

Un tableau de cubes

_ninjadefuse_
_ninjadefuse_
Niveau 7
20 janvier 2016 à 02:14:44

en gros tab[2][2][2][3] ce lis de droite a gauche ? image Lepigeon-888
https://image.noelshack.com/fichiers/2016/03/1453195523-tableau-multi-dim.png

j'ai toujours lu les tableaux de gauche vers la droite
par exemple
int tableau[2][3] = { { 10, 20, 1 } ,{ 15, 35, 5 } }; tableau[0][3] me donne 1
(y) (x)
du coup ton dessin me perturbe un peu methacracker on ne le lis pas dans le même sens
tab[3][3] = {
{ 1, 2, 3 } ,
{ 4, 5, 6 },
{ 7, 8, 9 }
};
tab[0][1] = 2 et tu montre que tab[0][1] = 4 du coup je comprend plus trop ton raisonnement

_ninjadefuse_
_ninjadefuse_
Niveau 7
20 janvier 2016 à 02:40:13

traduction de tab[2][2][2][3] = 2 tableaux qui contiennent chacun 2 tableaux, dans chaque de ses 2 tableaux il y a 2 tableaux qui contiennent 3 valeurs c'est pour moi la traduction la plus cohérente

https://image.noelshack.com/fichiers/2016/03/1453195523-tableau-multi-dim.png
j'ai compris mais dans le sens inverse pour moi, c'est a dire de la même manière que pour accéder a un élément du tableau
exemple:
tab[3][5] = 3 tableaux qui contiennent 5 valeurs donc tab[1][3] = 2eme tableau-> 4 eme valeur et non pas 4eme tableau 2eme valeur

merci pour ton dessin Lepigeon-888 j'ai compris maintenant mais pourquoi est ce que tu le lis de la droite vers la gauche,

godrik
godrik
Niveau 30
20 janvier 2016 à 04:29:55

une autre facon de voir a[1][2][3][4] est de dire que c'est l'entier stocke dans le 4ieme tirroir de la 3ieme armoire dans la 2ieme piece de la 1ere maison.

LEpigeon-888
LEpigeon-888
Niveau 12
20 janvier 2016 à 13:04:20

merci pour ton dessin Lepigeon-888 j'ai compris maintenant mais pourquoi est ce que tu le lis de la droite vers la gauche,

Je sais pas, j'ai fais ça au pif je sais pas dans quel sens c'est en vrai, mais une fois que t'as compris le principe t'as pas de mal à changer de sens normalement :oui:

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