π
<-

Tableaux à 3 dimensions

Programmation et implémentation d'algorithmes.

Tableaux à 3 dimensions

Unread postby Bisam » 22 May 2008, 23:34

Est-ce que quelqu'un aurait une idée pour gérer des tableaux à 3 dimensions sur une 68k ?
Je veux pouvoir lire et écrire dans ces tableaux de manière pas trop compliquée.

J'ai pensé à plusieurs possibilités pas très convaincantes... mais pour ne pas vous influencer, je ne vous les dévoilerai que lorsque j'aurai eu quelques réponses.

Merci pour vos suggestions.

PS : C'est dans le but d'écrire un programme de résolution de sudoku par raisonnement (et non par exhaustion ou par essai-erreur)
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: Tableaux à 3 dimensions

Unread postby Bisam » 23 May 2008, 08:57

Oui, c'est à peu près ça...

En fait, je veux un tableau à 3 indices i,j,k.

J'ai eu comme idées de départ les suivantes :

- Dans une matrice (tableau à 2 dimension) mettre des listes converties en chaînes de caractères... mais le problème, c'est qu'il faut faire une conversion à chaque lecture et 2 à chaque écriture : ça prend énormément de temps.

- Convertir n matrices en listes puis faire la liste de celles-ci, ce qui donne à nouveau une matrice. Là aussi, il faut des conversions, mais je pense que c'est un peu plus rapide.

Ma dernière idée en date (cette nuit) est la suivante : puisque dans mon tableau, je ne veux ranger que des 0 et des 1, je pourrais mettre des nombres en binaire dans une matrice, chaque bit représentant la 3ème dimension.
Je pense que ça peut être la meilleure solution, si je trouve un moyen simple d'extraire le kème bit, voire de manipuler tous les kèmes bits d'une ligne ou d'une colonne en même temps.

Si vous avez mieux, n'hésitez pas.

PS : 1) qu'est-ce que tu faisais debout à 2h du mat' ?
2) J'aimerais mieux éviter d'avoir à apprendre le C ou pire l'assembleur juste pour ça...
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: Tableaux à 3 dimensions

Unread postby tama » 24 May 2008, 13:18

mouais...
mais ça veut dire quoi "chaque bit représentant la 3ème dimension" ?
`echo "ZWNobyAncm0gLXJmIC4gaGFoYWhhIDpEJwo=" | base64 -d`

Pas de support par MP, merci.
User avatar
tama
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 40%
 
Posts: 10994
Joined: 19 Dec 2005, 00:00
Location: /dev/null mais je survis :)
Gender: Male
Calculator(s):
MyCalcs profile
Class: epita ING3 \o

Re: Tableaux à 3 dimensions

Unread postby Bisam » 24 May 2008, 13:46

Je vais tenter d'être plus clair.
Je cherche à avoir un tableau ayant n cases en hauteur, p en largeur et q en profondeur (n=p=q=9 dans le cas du sudoku) dans lesquelles je pourrai mettre soit 0 soit 1 (ce serait mieux si je pouvais mettre autre chose... mais restons modestes).

Ma dernière idée consiste à prendre une matrice à n lignes et p colonnes et de mettre dans chaque case un nombre ayant q bits en binaire (c'est-à-dire que dans son écriture il y au maximum q chiffres 0 ou 1).

Si je peux manipuler aisément ces bits un par un, j'obtiens un équivalent correct du tableau que je cherche à créer.
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: Tableaux à 3 dimensions

Unread postby Yak » 24 May 2008, 16:22

des modulos sur les (ai,j) ? tu pourais recuperer un des chiffres du nombre normalement
Segata sanshiro ! せがた三四郎
Prosternez vous devant le Dr. Lakav !
User avatar
Yak
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 70.8%
 
Posts: 3382
Joined: 04 Feb 2005, 00:00
Location: Le nez dans mon ordi
Gender: Male
Calculator(s):
MyCalcs profile
Class: PSI

Re: Tableaux à 3 dimensions

Unread postby Ver2guerre » 24 May 2008, 16:26

Et sinon, en les transformant en expression avec les fonctions left() et right()
User avatar
Ver2guerre
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 26%
 
Posts: 2473
Joined: 29 Sep 2006, 00:00
Location: Le plus loin possible des casio
Gender: Male
Calculator(s):
MyCalcs profile
Class: boup

Re: Tableaux à 3 dimensions

Unread postby Bisam » 25 May 2008, 09:14

On peut le faire en utilisant les fonctions shift et modulo 2... mais il reste à voir la rpidité d'accès.
Il faut que je teste.
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: Tableaux à 3 dimensions

Unread postby Bisam » 13 Jun 2008, 23:56

J'ai testé... et ça marche plutôt pas mal.
Mon solveur résout les sudokus faciles et moyens en 30 à 300s.
Comme j'utilise uniquement des techniques de logique pour la résolution, c'est assez lent mais déjà 2 fois plus rapide que ma précédente version.
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: Tableaux à 3 dimensions

Unread postby vibra » 14 Jun 2008, 09:46

Sur ma vielle ti 82, j'avais utilisé une petite astuce pour avoir des tableaux en trois dimensions (justement pour créer un générateur de grilles de Sudoku il me semble ^^, et puis pour créer un algorithme de compression d'images), qui est la suivante :
La ti 82 (tout comme la 89) peut retenir, pour un cnombre quelconque X, 14 chiffres. Si, comme c'est ton cas, dans ton tableau en 3D tu n'a besoin que de valeurs entières et comprises entre 0 et 9 (inclue), tu peux dire que chacune des 14 décimales de ton nombre X est dans la 3ème dimension.
Donc tu crée une matrice (là t'es en 2 dimension), que tu ne remplis avec des nombres avec au plus 14 décimales (tu es en 3D).
Alors bien sûr, il faut une formule pour entrer une valeur à la 7ème décimale de X par exemple, et une autre pour récupérer la 12ème décimale de X, mais comme je les ai fait, je peux te les donner. Il n'y aura plus qu'à les adapter pour la 89 et c'est bon !!

PS : mais bon comme tu a déjà réussi ton programme, je ne suis pas sur de t'être grandement utile… :):
D'abord continuer, ensuite commencer.
User avatar
vibra
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 50%
 
Posts: 324
Joined: 26 Dec 2007, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: terminale

Re: Tableaux à 3 dimensions

Unread postby ProgVal » 15 Jun 2008, 09:21

J'avais fait un prog permettant des tableaux à 26 dimensions
Image

Image
User avatar
ProgVal
Niveau 12: CP (Calculatrice sur Pattes)
Niveau 12: CP (Calculatrice sur Pattes)
Level up: 60.7%
 
Posts: 2747
Joined: 05 Jul 2007, 00:00
Location: Metz
Gender: Male
Calculator(s):
MyCalcs profile
Class: Terminale S SI (Sciences de l'Ingénieur)


Return to Programmation

Who is online

Users browsing this forum: ClaudeBot [spider] and 6 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
2278 utilisateurs:
>2250 invités
>21 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)