Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2065 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4
Auteur Sujet :

[java/algo] Concours - implémenter une itf simple de gestion d'agenda.

n°603450
nraynaud
lol
Posté le 05-01-2004 à 23:56:34  profilanswer
 

Reprise du message précédent :

the real moins moins a écrit :

ben disons que ça me parait plus clair au niveau de l'api d'inclure dans tous les cas, que de commencer à jouer sur le fait qu'on inclut pour la borne du bas mais pas pour la borne du haut, non ?

non on inclus pas la borne du bas.
quand l'utilisateur veut le planning de çh à 10h, on lui file pas les réunions qui finissent à 9h pile, ni celles qui commencent à 10h pile.


---------------
trainoo.com, c'est fini
mood
Publicité
Posté le 05-01-2004 à 23:56:34  profilanswer
 

n°603452
nraynaud
lol
Posté le 05-01-2004 à 23:58:13  profilanswer
 

en plus, je peux pas re-uploader mon entrée :'(


---------------
trainoo.com, c'est fini
n°603463
the real m​oins moins
Posté le 06-01-2004 à 00:03:37  profilanswer
 

nraynaud a écrit :

non on inclus pas la borne du bas.
quand l'utilisateur veut le planning de çh à 10h, on lui file pas les réunions qui finissent à 9h pile, ni celles qui commencent à 10h pile.


hmmmm.
j'aurais besoin d'un avis tiers pour trancher :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°603466
the real m​oins moins
Posté le 06-01-2004 à 00:04:21  profilanswer
 

nraynaud a écrit :

en plus, je peux pas re-uploader mon entrée :'(

change de nom :D
bon fait chier tu me fais hésiter avec cette histoire de bornes maintenant, alors que j'ai déjà corrigé les testcase :/


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°603476
the real m​oins moins
Posté le 06-01-2004 à 00:10:02  profilanswer
 

tu vois un inconvénient à ce que je bouge ton test case dans mon package?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°603486
nraynaud
lol
Posté le 06-01-2004 à 00:22:24  profilanswer
 

the real moins moins a écrit :

tu vois un inconvénient à ce que je bouge ton test case dans mon package?  

non, c'est GPL, c'est marqué dessus, tu peux même l'imprimer et te torcher avec si tu veux, mais fait gaffe à ton petit trou du cul, prend un papier assez fin en triple épaisseur si possible.


---------------
trainoo.com, c'est fini
n°603487
the real m​oins moins
Posté le 06-01-2004 à 00:22:28  profilanswer
 

bon ben j'l'ai fait quand meme, tu me diras et je le rebougerai si tu preferes :jap:
(c'est juste que ça simplifie pour le mec qui veut le lancer chez lui, niveau creation de repertoires etc :o)
 
 
edit:
euh ouais, remarque, vu que y'a un .zip avec les sources ça change pas grand chose... bon tu me dis ce que t'en penses et j'aviserai.
 
edit2:
bon ben, vu ta réponse, c'est bon :D
cela dit oui c'est gpl je sais, mais je prefere toujours demander. gpliser son code n'empeche pas d'avoir de l'amour propre ;)


Message édité par the real moins moins le 06-01-2004 à 00:29:09

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°603493
the real m​oins moins
Posté le 06-01-2004 à 00:27:59  profilanswer
 

Voilà, archive de sources mise à jour, et html des sources regeneré


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°603510
nraynaud
lol
Posté le 06-01-2004 à 00:47:31  profilanswer
 

non, le .zip ne semble pas bon. A moins qu'il n'y ait un cache pas à jour.


---------------
trainoo.com, c'est fini
n°603517
the real m​oins moins
Posté le 06-01-2004 à 00:56:49  profilanswer
 

voilà là c'est bon
(foutu client ftp qui a le bouton resume "à la place" du overwrite)
par contre mon browser/winrar me sort toujours l'ancien, meme si je le sauve sous un autre nom :heink: - mais je verifie sur mon autre machine... et c'est bon...)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
mood
Publicité
Posté le 06-01-2004 à 00:56:49  profilanswer
 

n°603524
nraynaud
lol
Posté le 06-01-2004 à 01:18:12  profilanswer
 

Code :
  1. // lower bound is ending time of a period, upper bound is upper than top period
  2.  c = cal.getPeriods(d4, d11);
  3.  assertEquals(2, c.size());
  4.  assertTrue(c.contains(p3to4));
  5.  assertTrue(c.contains(p5to6));
  6.  assertTrue(c.contains(p8to10));


on vérifie que la taille est 2, puis on vérifie la présence de 3 trucs différents dedans
 

Code :
  1. // tests proxy
  2.  Planning cal = (Planning) new NoOverlapPlanning();
  3.  cal.addPeriod(d1, d2);
  4.  Period p3to4 = cal.addPeriod(d3, d4);
  5.  cal.addPeriod(d5, d6);
  6.  cal.addPeriod(d7, d10);
  7.  Collection c = cal.getPeriods(d3, d7);
  8.  assertTrue(c.contains(p3to4));
  9.  assertEquals(1, c.size());

on rentre 3->4, 5->6 et 7->10 et on s'attend à pas retrouver ces 2 derniers quand on demande tout ce qui est entre 3 et 7.  
 
 
--, si ton entrée passe le test, elle est buggée.


---------------
trainoo.com, c'est fini
n°603528
the real m​oins moins
Posté le 06-01-2004 à 01:21:32  profilanswer
 

mon entrée passe pas les tests vu qu'elle autorize l'overlap :D


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°603536
nraynaud
lol
Posté le 06-01-2004 à 01:33:41  profilanswer
 

Code :
  1. diff -rcd orig/net/incongru/planning/PlanningContestTestCase.java net/incongru/planning/PlanningContestTestCase.java
  2. *** orig/net/incongru/planning/PlanningContestTestCase.java     Tue Jan  6 00:05:02 2004
  3. --- net/incongru/planning/PlanningContestTestCase.java  Tue Jan  6 01:30:28 2004
  4. ***************
  5. *** 112,118 ****
  6.  
  7.           // lower bound is ending time of a period, upper bound is upper than top period
  8.           c = cal.getPeriods(d4, d11);
  9. !         assertEquals(2, c.size());
  10.           assertTrue(c.contains(p3to4));
  11.           assertTrue(c.contains(p5to6));
  12.           assertTrue(c.contains(p8to10));
  13. --- 112,118 ----
  14.  
  15.           // lower bound is ending time of a period, upper bound is upper than top period
  16.           c = cal.getPeriods(d4, d11);
  17. !         assertEquals(3, c.size());
  18.           assertTrue(c.contains(p3to4));
  19.           assertTrue(c.contains(p5to6));
  20.           assertTrue(c.contains(p8to10));
  21. ***************
  22. *** 170,176 ****
  23.           cal.addPeriod(d7, d10);
  24.  
  25.           Collection c = cal.getPeriods(d3, d7);
  26. !         assertTrue(c.contains(p3to4));
  27. !         assertEquals(1, c.size());
  28.       }
  29.   }
  30. --- 170,178 ----
  31.           cal.addPeriod(d7, d10);
  32.  
  33.           Collection c = cal.getPeriods(d3, d7);
  34. !               assertTrue(c.contains(p3to4));
  35. !               assertTrue(c.contains(p5to6));
  36. !               assertTrue(c.contains(p7to10));
  37. !               assertEquals(3, c.size());
  38.       }
  39.   }

cado


---------------
trainoo.com, c'est fini
n°603537
the real m​oins moins
Posté le 06-01-2004 à 01:37:50  profilanswer
 

déjà corrigé et regénéré les reports http://rien.a.dire.free.fr/concour [...] tCase.html ;)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°603540
nraynaud
lol
Posté le 06-01-2004 à 01:51:04  profilanswer
 

y'a pas moyen d'avoir un truc qui fait le rapport direct quand on upload ?


---------------
trainoo.com, c'est fini
n°603541
nraynaud
lol
Posté le 06-01-2004 à 01:51:54  profilanswer
 

\o/ http://rien.a.dire.free.fr/concour [...] atest.html


Message édité par nraynaud le 06-01-2004 à 01:52:15

---------------
trainoo.com, c'est fini
n°603542
the real m​oins moins
Posté le 06-01-2004 à 01:53:06  profilanswer
 

nraynaud a écrit :

y'a pas moyen d'avoir un truc qui fait le rapport direct quand on upload ?

j'ai un cron toutes les 8h, mais si je suis dans le coin, je le lance quand je vois une nouvelle participation ;)
 
bravo :D


Message édité par the real moins moins le 06-01-2004 à 01:53:36

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°603545
the real m​oins moins
Posté le 06-01-2004 à 01:55:40  profilanswer
 

En fait, tu pourrais m'expliquer l'interet du Proxy ici?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°603548
nraynaud
lol
Posté le 06-01-2004 à 02:09:35  profilanswer
 

c'est marqué dedans :-)
 
en fait, toucher de quelque manière que ce soit au comparator risque de lancer une exception, qui n'est pas _du tout_ dans le contrat de SortedSet (si tu va dans le javadoc de Comparator, c'est bien marqué que l'ordre est total).
 
Le comparator lève une exception si les 2 arguments sont incomparables (2 période sont imcomparable s'il existe une zone de recouvrement entre elles). Il faut donc la trapper et faire les actions appropriées.
 
On renvoie une collection (non-modifiable, je fais ce que je veux, y'a rien de marqué dans la spec du concours), qui, en dessous est une vue sur un fragment du TreeSet. Les seules opération de Collection pouvant déclencher une comparaison sont donc contains et containsAll (si j'en ai pas oublié, sinon c'est la cata).
Si l'argument de contains n'est pas comparable avec un des éléments du Set alors il n'a pas pu être inséré, il est pas dedans, on renvoie false.
On étend le raisonnement à containsAll en supposant que c'est l'application de contains à l'ensemble des éléments de la collection passée en argument.
 
L'intérêt (théorique) de ne pas copier les élément du sous-ensemble dans une nouvelle collection avant de les renvoyer, c'est de garder l'opération contains en O(nLog(n)) et de limiter la pression sur le GC. En réalité, le coût d'appel sur le proxy est assez balaise : instanciation de la méthode, du tableau des arguments, boxing puis deboxing de la valeur de retour. Mais bon, le concours c'est aussi l'occasion de se branler un peu la nouille.


Message édité par nraynaud le 06-01-2004 à 02:12:26

---------------
trainoo.com, c'est fini
n°603549
the real m​oins moins
Posté le 06-01-2004 à 02:12:44  profilanswer
 

ok :D et merci :)


Message édité par the real moins moins le 06-01-2004 à 02:13:27

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°603572
nraynaud
lol
Posté le 06-01-2004 à 03:37:05  profilanswer
 

et t'en penses quoi globalement de la solution ?
ça vaut le coup ou pas de faire cette bidouille ?


---------------
trainoo.com, c'est fini
n°603575
the real m​oins moins
Posté le 06-01-2004 à 03:39:54  profilanswer
 

nraynaud a écrit :

et t'en penses quoi globalement de la solution ?
ça vaut le coup ou pas de faire cette bidouille ?

je trouve la manip interessante, mais à mon avis, doit y'avoir moyen de faire un truc plus simple pour gérer cette fameuse exception !?
(étendre la classe de Collection que tu utilises en étendant les méthodes contains et containsAll ?)
 
edit: et quand tu me dis "garder l'opération contains en O(nLog(n))", ben moi euh.. ça me parle pas des masses :/


Message édité par the real moins moins le 06-01-2004 à 03:40:54

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°603595
nraynaud
lol
Posté le 06-01-2004 à 08:13:59  profilanswer
 

je parlais de l'idée de détourner Comparator pour y rajouter l'exception fatale, pas du proxy.
 
Concernant la complexité :
dans un TreeSet, rechercher un élément demande le parcours d'un nombre d'éléments (le nombre de "sauts" d'un élément à l'autre) qui dépend du nombre d'éléments déjà présent dans le set.
Si n est le nombre d'éléments du set, dans un arbre binaire équilibré, aller à n'importe quel élément se fait en moins de Log2(n) - 1.
 
Si on prend une autre structure, comme le HashMap par exemple, aller chercher un élément se fait en un temp constant quelquesoit le nombre d'éléments dans la structure (on regarde le hasCode de l'objet, on fait modulo la taille du tableau et on va voir à la case que ça donne).
 
Je reprends pas depuis le début l'algoritmique, je pense que tu as au moins des notions. Et puis la notion de O() ("grand o de quelquechose" ) signifie que c'est la partie la plus importante de la formule quand n devient grand (cette dernière précision a son importance, quand on travaille avec des structures de peu d'élément, on utilise des algos de merde mais qui prenent moins de mémoire, exercice : comparez javax.swing.event.EventListenerList et java.util.HashSet)
 
Mais ce que je voulais dire c'est que je garde l'avantage du TreeSet, même quand on en prend qu'un bout.
 
edit : en plus je me suis planté dans mon post au-dessus, c'est O(Log(n)) la comp


Message édité par nraynaud le 06-01-2004 à 08:18:23

---------------
trainoo.com, c'est fini
n°603715
nraynaud
lol
Posté le 06-01-2004 à 11:25:40  profilanswer
 

Hop bug !  
 
J'offre un paquet de cacahuètes virtuel à celui qui trouve un bug dans mon entrée. Accrochez-vous, c'est vicieux.


---------------
trainoo.com, c'est fini
n°603726
darklord
You're welcome
Posté le 06-01-2004 à 11:37:23  profilanswer
 

mega intéressant ce concours :jap:


---------------
Just because you feel good does not make you right
n°603837
Cherrytree
cn=?
Posté le 06-01-2004 à 13:59:21  profilanswer
 

Y a pas mal de trucs qui ont changé depuis mon précédent passage sur le topic. Il n'y a plus qu'une interface à implémenter et deux testcases à passer ?
 
EDIT : OK, j'avais loupé le lien vers les sources. BasicPeriod, c'est à prendre aussi ?
 
EDIT 2 : j'ai relu le post de moinsmoins. Pas la peine de me quoter, greg, je sais qu'avec ce post velu en bétises, je passe pour un gros naze. J'assume.


Message édité par Cherrytree le 06-01-2004 à 14:11:17

---------------
Le site de ma maman
n°603840
nraynaud
lol
Posté le 06-01-2004 à 14:06:38  profilanswer
 

y'a un zip, tu prends ce que tu veux dedans, il faut que le testcase fourni passe.
 
Et si possible qu'il n'y ait pas de bug comme le mien.


---------------
trainoo.com, c'est fini
n°603843
Cherrytree
cn=?
Posté le 06-01-2004 à 14:08:26  profilanswer
 

nraynaud a écrit :

y'a un zip, tu prends ce que tu veux dedans, il faut que le testcase fourni passe.
 
Et si possible qu'il n'y ait pas de bug comme le mien.


Bon, en examinant les sources, j'ai tout compris. Sinon, tu fais un truc graphique toi ?


---------------
Le site de ma maman
n°603854
nraynaud
lol
Posté le 06-01-2004 à 14:16:02  profilanswer
 

cherrytree a écrit :


Bon, en examinant les sources, j'ai tout compris. Sinon, tu fais un truc graphique toi ?

j'ai rien vu de graphique dans les testcases, donc non.
 
Le but c'est de faire un petit truc en peu de temps, d'étudier un point précis, en l'occurence la collision entre les périodes.


---------------
trainoo.com, c'est fini
n°603869
the real m​oins moins
Posté le 06-01-2004 à 14:32:45  profilanswer
 

cherrytree a écrit :


EDIT 2 : j'ai relu le post de moinsmoins. Pas la peine de me quoter, greg, je sais qu'avec ce post velu en bétises, je passe pour un gros naze. J'assume.

[:rofl] [:xp1700]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°603870
the real m​oins moins
Posté le 06-01-2004 à 14:33:43  profilanswer
 

nraynaud a écrit :

Hop bug !  
 
J'offre un paquet de cacahuètes virtuel à celui qui trouve un bug dans mon entrée. Accrochez-vous, c'est vicieux.

si y'a moyen de testcaser le bug, je prends!


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°603880
nraynaud
lol
Posté le 06-01-2004 à 14:39:30  profilanswer
 

the real moins moins a écrit :

si y'a moyen de testcaser le bug, je prends!  

oui, on peut. Mais il est dans la collection retournée.


---------------
trainoo.com, c'est fini
n°603881
the real m​oins moins
Posté le 06-01-2004 à 14:39:31  profilanswer
 

nraynaud a écrit :

je parlais de l'idée de détourner Comparator pour y rajouter l'exception fatale, pas du proxy.


ben oui, mais la consequence de cette idée c'est qu'on doit passer par le proxy, ce qui rend les choses un peu moins simples à comprendre... mais globalement c'est assez impressionant, tres technique :D
 

nraynaud a écrit :


Concernant la complexité :

:jap:
 
encore une fois, je vois que mon pb est plus un problème de vocabulaire de la théorie que des concepts eux-memes... mais c'est comme les design patterns, ça fait du bien d'avoir un vocabulaire commun.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°603952
Cherrytree
cn=?
Posté le 06-01-2004 à 15:01:28  profilanswer
 


Salaud ! J'assume.


---------------
Le site de ma maman
n°604182
the real m​oins moins
Posté le 06-01-2004 à 19:55:11  profilanswer
 

ben alors les jeunes, plus personne veut se mouiller?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°604241
Cherrytree
cn=?
Posté le 06-01-2004 à 21:08:16  profilanswer
 

C'est ouvert jusqu'à quand ?


---------------
Le site de ma maman
n°604242
the real m​oins moins
Posté le 06-01-2004 à 21:10:08  profilanswer
 

jusqu'a ce que j'en ai marre [:joce]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°604302
phnatomass
Je m'empare de ton esprit !!
Posté le 06-01-2004 à 22:20:00  profilanswer
 

Jeudi soir je poste mon implémentaion

n°604306
the real m​oins moins
Posté le 06-01-2004 à 22:22:29  profilanswer
 

[:bien]  
 
merci :)
(prenez-en de la graine les soit-disant boss du java d'ici :o)


Message édité par the real moins moins le 06-01-2004 à 22:22:48

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°604330
the real m​oins moins
Posté le 06-01-2004 à 23:01:10  profilanswer
 

ça pose un problème à quelqu'un si mon implémentation dépends de commons-collections? ( http://jakarta.apache.org/commons/collections.html )


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°604382
R3g
fonctionnaire certifié ITIL
Posté le 07-01-2004 à 02:00:38  profilanswer
 

the real moins moins a écrit :

ça pose un problème à quelqu'un si mon implémentation dépends de commons-collections? ( http://jakarta.apache.org/commons/collections.html )

Tant que ça reste libre... En même temps c'est toi qui fixe les règles.

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4

Aller à :
Ajouter une réponse
 

Sujets relatifs
Probleme de PHP/MYSQL => je m'embrouille dans l'algoRecherche editeurs de jeu en flash ou java?
[java]Problème d'import de classe swing[JAVA] Où trouver une bonne initiation à la création de webservices ?
Un script en java pour réactualiser une image ?Optimisation de gestion de fichier
Qq'un connait un bon couple lexer/parser LALR en java?JAVA Network Programming
[CAML] algo a comprendre - viendez tester lIA en meme tempsPlusieurs questions en Java
Plus de sujets relatifs à : [java/algo] Concours - implémenter une itf simple de gestion d'agenda.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR