[C] Recherche du plus grand carre...

Recherche du plus grand carre... [C] - C - Programmation

Marsh Posté le 01-12-2004 à 17:09:36    

J'ai besoin d'aide sur un petit programme.
 
En fait il s'agit de lui passer en parametre un fichier de ce type :
 
$ > cat fichier_test
9
...........................  
....o......................  
............o..............  
...........................  
....o......................  
...............o...........  
...........................  
......o..............o.....  
..o.......o................  
$ >
 
 
Et en fait il faut reussir a trouver le plus grand carre possible forme par des '.'  et le remplacer par des 'x' ... Bon... comme ca c'est pas tres explicite.
Dans notre exemple ca donnerai :
 
$ > ./search_square fichier_test
.....xxxxxxx...............      
....oxxxxxxx...............      
.....xxxxxxxo..............      
.....xxxxxxx...............      
....oxxxxxxx...............      
.....xxxxxxx...o...........      
.....xxxxxxx...............      
......o..............o.....      
..o.......o................      
$ >
 
Okay vous voyez le truc ? Je vois pas trop comment je pourrai faire pour lui faire trouver le carre le plus grand en fait :/
 
PS : le nombre dans le fichier test est juste le nombre de ligne. Toutes les lignes sont egales.
 
J'attends vos idees

Reply

Marsh Posté le 01-12-2004 à 17:09:36   

Reply

Marsh Posté le 02-12-2004 à 04:25:30    

Je me lance en proposant un algo trivial et pas optimisé : tu prends chaque point les un après les autres, en commençant en haut à gauche, et en te déplaçant de gauche à droite puis de ligne en ligne. Tu considères ce point (qu'on va appeler point générateur) comme le sommet superieur gauche d'un carré potentiel que tu va agrandir progressivement vers la droite et vers le bas, jusqu'a ce qu'il intercepte un rond (carré de 2 sur 2, puis 3 sur 3...). Et c'est tout. Au cours de tes itérations tu mémorise le point générateur qui a engendré le plus grand carré.
 
C'est très bête comme algo et il doit y avoir beaucoup mieux, mais tu peux deja faire quelques optimisations simples. Genre si tu a déja rencontré un point générateur qui engendre un carré de coté N, tu sais que ce n'est pas la peine de tester les point qui sont à moins de N points du bord droit ou de la dernière ligne.
 
Sinon ca devrait être dans la catégorie Algo, pas C.


Message édité par matafan le 02-12-2004 à 04:31:05
Reply

Marsh Posté le 03-12-2004 à 07:29:05    

c'est pas tres interessant de payer la peau du cul pour une ecole si c'est pour aller chercher les algos sur des forums...


---------------
Julien Oncelay
Reply

Marsh Posté le 03-12-2004 à 07:36:52    

Je dirai simplement "C'est pas tres intérressant de payer la peau du cul pour une école"

Reply

Marsh Posté le 03-12-2004 à 13:34:09    

DeirElBahri a écrit :

c'est pas tres interessant de payer la peau du cul pour une ecole si c'est pour aller chercher les algos sur des forums...


Ouais, et tu voudrais quoi? Que les profs donnent les solutions en meme temps que les exercices?

Reply

Marsh Posté le 03-12-2004 à 13:51:58    

(vous êtes pas un peu HS là les gars? [:itm])


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 04-12-2004 à 11:33:45    

Ace17 a écrit :

Ouais, et tu voudrais quoi? Que les profs donnent les solutions en meme temps que les exercices?


 
Pourquoi pas

Reply

Marsh Posté le 04-12-2004 à 12:35:47    

Parce qu'il faut chercher pour apprendre. Pas necessairement trouver, mais si le prof te balance la solution et que t'as pas cherche avant, le gain est tres limite.

Reply

Marsh Posté le 05-12-2004 à 23:51:37    

c'est un projet proposé en premiere année dans mon ecole..le but est de faire acqérir une certaine logique de recherche d'algorithmes.. si l'etudiant le trouve pas la solution sans aide exterieur, le projet est inutile..


---------------
Julien Oncelay
Reply

Marsh Posté le 06-12-2004 à 00:01:16    

Encore plus bete tu considere tous les rectangles possibles en les triant par ordre decroissant (la fonction de mesure sera l'air du rectangle) et tu prend le premier.
 
C'est tres con (expo) mais c'est une solution.


Message édité par Chronoklazm le 06-12-2004 à 00:40:44
Reply

Marsh Posté le 06-12-2004 à 00:01:16   

Reply

Marsh Posté le 13-12-2004 à 13:49:57    

C'est surtout tres con.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed