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

 

Sujet(s) à lire :
    - Who's who@Programmation
 

 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  19273  19274  19275  ..  26991  26992  26993  26994  26995  26996
Auteur Sujet :

[blabla@olympe] Le topic du modo, dieu de la fibre et du monde

n°2109137
skeye
Posté le 01-11-2011 à 20:03:20  profilanswer
 

Reprise du message précédent :


j'aurais tendance à dire que c'est le vibrant international la version "standard"...après si tu savais d'où vient le tel en question ça pourrait aider...[:joce]


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le 01-11-2011 à 20:03:20  profilanswer
 

n°2109139
nraynaud
lol
Posté le 01-11-2011 à 20:24:38  profilanswer
 

http://jsfiddle.net/Pf2w6/27/

 

1) y'a des doublons dans ma liste
2) 'faut pas calculer la pente de la droite, parce qu'elle risque d'être infine, j'ai re-formulé l'équation pour virer le dénominateur (et me suis planté en la re-copiant au passage, comme d'hab.).
3) la flemme de vérifier visuellement le résultat.

 

edit: les points d'index 5, 49, 65, 67, 85 sont alignés d'après ma bouse.


Message édité par nraynaud le 01-11-2011 à 20:25:32

---------------
trainoo.com, c'est fini
n°2109140
verdoux
And I'm still waiting
Posté le 01-11-2011 à 20:28:14  profilanswer
 

mareek a écrit :


L'interviewer va être super content de ce genre de réponse, c'est parfait pour évaluer tes capacités à trouver un algorithme et à analyser son coût et sa complexité [:dawa]


Ca dépend de ce qu'ils cherchent. Un codeur ou un type qui a des idées.
 
C'est peut être comme l'oral de maths d'Ulm. L'examinateur pose un problème, pas forcément folichon.  
Il y a ceux, conscencieux,  qui répondent strictement au problème, et ceux qui se disent "merde on est à l'oral d'Ulm, je vais pas me contenter de ce résultat trivial" et proposent un énoncé plus général du problème. Il s'ensuit une discussion intéressante avec l'examinateur qui dépasse largement le problème initial.
En général, ce sont les seconds qui sont reçus.
 
Après, si l'examinateur est américain, j'en resterais à l'énoncé initial :o

Message cité 3 fois
Message édité par verdoux le 01-11-2011 à 20:30:47
n°2109142
0x90
Posté le 01-11-2011 à 20:30:26  profilanswer
 

nraynaud a écrit :


t'as quoi comme relation d'ordre dans un espace vectoriel de dimension 2 ? Au pire il est pas total.

 

Je trie par a puis par b dans l'équation y=ax+b de chaque ligne.

 

Plutôt que de tout stocker plus trier, on peut aussi insérer progressivement dans un set ou un hash de listes de points dont la clef est l'équation de droite de cette liste, je garde le n^2.log(n) en temps, pour la mémoire c'est un peu mieux que la liste complète avec tri à postériori mais rien de miraculeux:

 

http://jsfiddle.net/P2ECk/

 

Le set étant pas dispo en js, j'ai émulé avec un objet en tant que hash et le tuple de l'équation sous forme de string.

 

(Ça ne sort qu'un des meilleurs alignements, mais y'a assez d'info pour afficher aussi les ex-aequo)

Message cité 2 fois
Message édité par 0x90 le 01-11-2011 à 20:31:46

---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°2109144
nraynaud
lol
Posté le 01-11-2011 à 20:35:15  profilanswer
 

0x90 a écrit :

 

Je trie par a puis par b dans l'équation y=ax+b de chaque ligne.

 

Plutôt que de tout stocker plus trier, on peut aussi insérer progressivement dans un set ou un hash de listes de points dont la clef est l'équation de droite de cette liste, je garde le n^2.log(n) en temps, pour la mémoire c'est un peu mieux que la liste complète avec tri à postériori mais rien de miraculeux:

 

http://jsfiddle.net/P2ECk/

 

Le set étant pas dispo en js, j'ai émulé avec un objet en tant que hash et le tuple de l'équation sous forme de string.

 

(Ça ne sort qu'un des meilleurs alignements, mais y'a assez d'info pour afficher aussi les ex-aequo)


ok, vu. t'as juste à faire un tri-insertion

 

edit: hum, c'est un peu plus complexe que ça, mais on peut tout faire à l'insertion quand même.


Message édité par nraynaud le 01-11-2011 à 20:46:22

---------------
trainoo.com, c'est fini
n°2109145
vapeur_coc​honne
Stig de Loisir
Posté le 01-11-2011 à 20:38:36  profilanswer
 

verdoux a écrit :


Ca dépend de ce qu'ils cherchent. Un codeur ou un type qui a des idées.
 
C'est peut être comme l'oral de maths d'Ulm. L'examinateur pose un problème, pas forcément folichon.  
Il y a ceux, conscencieux,  qui répondent strictement au problème, et ceux qui se disent "merde on est à l'oral d'Ulm, je vais pas me contenter de ce résultat trivial" et proposent un énoncé plus général du problème. Il s'ensuit une discussion intéressante avec l'examinateur qui dépasse largement le problème initial.
En général, ce sont les seconds qui sont reçus.
 
Après, si l'examinateur est américain, j'en resterais à l'énoncé initial :o


 [:ryoandr]


---------------
marilou repose sous la neige
n°2109148
skeye
Posté le 01-11-2011 à 20:59:58  profilanswer
 

uriel a écrit :

'tain le nouveau google reader [:everything4free] wtf


ouais, niveau couleurs c'est pas génial.[:el g]

Message cité 1 fois
Message édité par skeye le 01-11-2011 à 21:00:07

---------------
Can't buy what I want because it's free -
n°2109151
el muchach​o
Comfortably Numb
Posté le 01-11-2011 à 21:25:29  profilanswer
 

0x90 a écrit :

 

Je trie par a puis par b dans l'équation y=ax+b de chaque ligne.

 

Plutôt que de tout stocker plus trier, on peut aussi insérer progressivement dans un set ou un hash de listes de points dont la clef est l'équation de droite de cette liste, je garde le n^2.log(n) en temps, pour la mémoire c'est un peu mieux que la liste complète avec tri à postériori mais rien de miraculeux:

 

http://jsfiddle.net/P2ECk/

 

Le set étant pas dispo en js, j'ai émulé avec un objet en tant que hash et le tuple de l'équation sous forme de string.

 

(Ça ne sort qu'un des meilleurs alignements, mais y'a assez d'info pour afficher aussi les ex-aequo)


Ca te fait quoi comme résultat ?

Code :
  1. package xxx.yyy;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. public class Longest {
  5.     static final int[][] data = { { 9, 93 }, { 43, 84 }, { 88, 82 }, { 27, 51 }, { 6, 7 }, { 98, 99 }, { 26, 96 },
  6.             { 67, 37 },
  7.             { 77, 8 }, { 11, 62 }, { 67, 29 }, { 64, 53 }, { 51, 74 }, { 99, 36 }, { 23, 85 }, { 8, 53 }, { 85, 35 },
  8.             { 15, 71 }, { 66, 27 }, { 95, 77 }, { 62, 48 }, { 82, 1 }, { 5, 81 }, { 58, 2 }, { 93, 52 }, { 59, 55 },
  9.             { 74, 17 }, { 51, 36 }, { 66, 61 }, { 41, 53 }, { 18, 29 }, { 35, 89 }, { 63, 50 }, { 37, 6 }, { 40, 23 },
  10.             { 97, 39 }, { 68, 11 }, { 89, 30 }, { 2, 87 }, { 18, 96 }, { 17, 79 }, { 24, 68 }, { 36, 8 }, { 45, 84 },
  11.             { 21, 13 }, { 43, 90 }, { 42, 73 }, { 62, 91 }, { 81, 37 }, { 98, 63 }, { 56, 21 }, { 65, 47 }, { 77, 55 },
  12.             { 40, 77 }, { 16, 75 }, { 62, 12 }, { 75, 12 }, { 86, 64 }, { 2, 30 }, { 71, 62 }, { 81, 70 }, { 5, 64 },
  13.             { 19, 32 }, { 16, 43 }, { 38, 26 }, { 98, 6 }, { 46, 23 }, { 98, 65 }, { 53, 20 }, { 79, 31 }, { 7, 60 },
  14.             { 50, 65 }, { 31, 83 }, { 81, 41 }, { 0, 29 }, { 33, 61 }, { 55, 77 }, { 23, 65 }, { 9, 93 }, { 42, 20 },
  15.             { 37, 27 }, { 51, 71 }, { 7, 73 }, { 97, 21 }, { 36, 35 }, { 98, 93 }, { 89, 39 }, { 12, 98 }, { 86, 49 },
  16.             { 64, 7 }, { 4, 48 }, { 37, 93 }, { 52, 26 }, { 24, 51 }, { 33, 56 }, { 23, 72 }, { 11, 29 }, { 89, 76 },
  17.             { 62, 25 }, { 0, 40 } };
  18.    
  19.     static boolean colinear(Point p, Point q, Point r) {
  20.         return (q.x - p.x) * (r.y - q.y) == (q.y - p.y) * (r.x - q.x);
  21.     }
  22.     static List<Point> longestAlignment(Point[] points) {
  23.         List<Point> longest = new ArrayList<Point>();
  24.      
  25.         // find all the possible alignments
  26.         for(Point p: points){
  27.            for(Point q: points){
  28.                 if (p.equals(q)) break;
  29.                 List<Point> align = new ArrayList<Point>();
  30.                 align.add(p);
  31.                 align.add(q);
  32.                 for(Point r: points){
  33.                    if (p.equals(r) || q.equals(r)) break;
  34.                     if (colinear(p, q, r))
  35.                         align.add(r);
  36.                 }
  37.                 if (align.size() > longest.size())
  38.                     longest = align;
  39.            }
  40.         }
  41.         return longest;
  42.     }
  43.    
  44.     public static void main(String[] args) {
  45.         Point[] points = new Point[100];
  46.         for (int i = 0; i < points.length; i++) {
  47.             points[i] = new Point(data[i][0], data[i][1]);
  48.         }
  49.         List<Point> longest = longestAlignment(points);
  50.         System.out.println(longest.size());
  51.         for(Point p: longest){
  52.             System.out.print(p.toString() + ' ');
  53.         }
  54.     }
  55. }


Me sort
5
[98, 93] [98, 65] [98, 99] [98, 63] [98, 6]

 

edit: on a bien la même chose, mais je trouve que le nombre de points un peu insuffisant, un millier serait plus intéressant.

Message cité 1 fois
Message édité par el muchacho le 01-11-2011 à 21:34:36

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2109152
nraynaud
lol
Posté le 01-11-2011 à 21:50:53  profilanswer
 

el muchacho a écrit :


Ca te fait quoi comme résultat ?

Code :
  1. package xxx.yyy;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. public class Longest {
  5.     static final int[][] data = { { 9, 93 }, { 43, 84 }, { 88, 82 }, { 27, 51 }, { 6, 7 }, { 98, 99 }, { 26, 96 },
  6.             { 67, 37 },
  7.             { 77, 8 }, { 11, 62 }, { 67, 29 }, { 64, 53 }, { 51, 74 }, { 99, 36 }, { 23, 85 }, { 8, 53 }, { 85, 35 },
  8.             { 15, 71 }, { 66, 27 }, { 95, 77 }, { 62, 48 }, { 82, 1 }, { 5, 81 }, { 58, 2 }, { 93, 52 }, { 59, 55 },
  9.             { 74, 17 }, { 51, 36 }, { 66, 61 }, { 41, 53 }, { 18, 29 }, { 35, 89 }, { 63, 50 }, { 37, 6 }, { 40, 23 },
  10.             { 97, 39 }, { 68, 11 }, { 89, 30 }, { 2, 87 }, { 18, 96 }, { 17, 79 }, { 24, 68 }, { 36, 8 }, { 45, 84 },
  11.             { 21, 13 }, { 43, 90 }, { 42, 73 }, { 62, 91 }, { 81, 37 }, { 98, 63 }, { 56, 21 }, { 65, 47 }, { 77, 55 },
  12.             { 40, 77 }, { 16, 75 }, { 62, 12 }, { 75, 12 }, { 86, 64 }, { 2, 30 }, { 71, 62 }, { 81, 70 }, { 5, 64 },
  13.             { 19, 32 }, { 16, 43 }, { 38, 26 }, { 98, 6 }, { 46, 23 }, { 98, 65 }, { 53, 20 }, { 79, 31 }, { 7, 60 },
  14.             { 50, 65 }, { 31, 83 }, { 81, 41 }, { 0, 29 }, { 33, 61 }, { 55, 77 }, { 23, 65 }, { 9, 93 }, { 42, 20 },
  15.             { 37, 27 }, { 51, 71 }, { 7, 73 }, { 97, 21 }, { 36, 35 }, { 98, 93 }, { 89, 39 }, { 12, 98 }, { 86, 49 },
  16.             { 64, 7 }, { 4, 48 }, { 37, 93 }, { 52, 26 }, { 24, 51 }, { 33, 56 }, { 23, 72 }, { 11, 29 }, { 89, 76 },
  17.             { 62, 25 }, { 0, 40 } };
  18.    
  19.     static boolean colinear(Point p, Point q, Point r) {
  20.         return (q.x - p.x) * (r.y - q.y) == (q.y - p.y) * (r.x - q.x);
  21.     }
  22.     static List<Point> longestAlignment(Point[] points) {
  23.         List<Point> longest = new ArrayList<Point>();
  24.      
  25.         // find all the possible alignments
  26.         for(Point p: points){
  27.            for(Point q: points){
  28.                 if (p.equals(q)) break;
  29.                 List<Point> align = new ArrayList<Point>();
  30.                 align.add(p);
  31.                 align.add(q);
  32.                 for(Point r: points){
  33.                    if (p.equals(r) || q.equals(r)) break;
  34.                     if (colinear(p, q, r))
  35.                         align.add(r);
  36.                 }
  37.                 if (align.size() > longest.size())
  38.                     longest = align;
  39.            }
  40.         }
  41.         return longest;
  42.     }
  43.    
  44.     public static void main(String[] args) {
  45.         Point[] points = new Point[100];
  46.         for (int i = 0; i < points.length; i++) {
  47.             points[i] = new Point(data[i][0], data[i][1]);
  48.         }
  49.         List<Point> longest = longestAlignment(points);
  50.         System.out.println(longest.size());
  51.         for(Point p: longest){
  52.             System.out.print(p.toString() + ' ');
  53.         }
  54.     }
  55. }


Me sort  
5
[98, 93] [98, 65] [98, 99] [98, 63] [98, 6]  
 
edit: on a bien la même chose, mais je trouve que le nombre de points un peu insuffisant, un millier serait plus intéressant.


bah tu les postes pas ici alors stp.


---------------
trainoo.com, c'est fini
n°2109155
the real m​oins moins
Posté le 01-11-2011 à 22:13:13  profilanswer
 

skeye a écrit :


j'aurais tendance à dire que c'est le vibrant international la version "standard"...après si tu savais d'où vient le tel en question ça pourrait aider...[:joce]


d'ou ? euh... de suisse ? de chez Swisscom, même... ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
mood
Publicité
Posté le 01-11-2011 à 22:13:13  profilanswer
 

n°2109162
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 01-11-2011 à 22:44:19  profilanswer
 

skeye a écrit :


ouais, niveau couleurs c'est pas génial.[:el g]


Limite illisible :/ Apparemment, pas mal de monde a gueulé...


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°2109163
skeye
Posté le 01-11-2011 à 22:46:06  profilanswer
 

the real moins moins a écrit :


d'ou ? euh... de suisse ? de chez Swisscom, même... ?


 
c'est bien le GT-i9000 qu'ils vendaient, à première vue. D'après la page wikipedia que t'as citée, la seule différence avec le vibrant est le support réseau, et la photo du vibrant international sur gelaskin semble parfaitement identique à mon galaxy S.


---------------
Can't buy what I want because it's free -
n°2109165
mareek
Et de 3 \o/
Posté le 01-11-2011 à 23:07:56  profilanswer
 

verdoux a écrit :

Ca dépend de ce qu'ils cherchent. Un codeur ou un type qui a des idées.
 
C'est peut être comme l'oral de maths d'Ulm. L'examinateur pose un problème, pas forcément folichon.  
Il y a ceux, conscencieux,  qui répondent strictement au problème, et ceux qui se disent "merde on est à l'oral d'Ulm, je vais pas me contenter de ce résultat trivial" et proposent un énoncé plus général du problème. Il s'ensuit une discussion intéressante avec l'examinateur qui dépasse largement le problème initial.
En général, ce sont les seconds qui sont reçus.
 
Après, si l'examinateur est américain, j'en resterais à l'énoncé initial :o


C'est sûr qu'en répondant "Dans la vraie vie, ce problème ne se pose pas" ça ouvre vachement la discussion [:petrus75]
 
Enfin, je dis ça, je dis rien, je n'ai pas fait Ulm [:cosmoschtroumpf]

Taiche a écrit :

Limite illisible :/ Apparemment, pas mal de monde a gueulé...


C'est le nouveau thème graphqie de google malheureusement :/


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°2109172
uriel
blood pt.2
Posté le 01-11-2011 à 23:27:57  profilanswer
 

mareek a écrit :


C'est le nouveau thème graphqie de google malheureusement :/


sur gmail ou calendar ça passe mais là c'est une UI mal conçue et moche  :/


---------------
IVG en france
n°2109174
the real m​oins moins
Posté le 01-11-2011 à 23:37:02  profilanswer
 

skeye a écrit :

 

c'est bien le GT-i9000 qu'ils vendaient, à première vue. D'après la page wikipedia que t'as citée, la seule différence avec le vibrant est le support réseau, et la photo du vibrant international sur gelaskin semble parfaitement identique à mon galaxy S.


ouais dans les infos systeme machin truc, on a trouvé gt-i9000 effectivement, et la pic du vibrant ressemble bien... bon ben on va tenter ça, je suppose [:romf]


Message édité par the real moins moins le 01-11-2011 à 23:38:56

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°2109189
Profil sup​primé
Posté le 02-11-2011 à 07:18:49  answer
 

Primate.

n°2109190
beel1
Posté le 02-11-2011 à 07:19:35  profilanswer
 

the real moins moins a écrit :

euh je doute du prix, et ça rend le truc un poil inflexible, et très probablement moche, ou alors on parle pas de la même chose


Je parlais d'un afficheur à base de matrices de LEDs par ex. :spamafote:
 
C'est ptêt moins classe qu'un plasma, mais point de vue visibilité de loin, luminosité, angles de vision, conso... [:spamafote]

n°2109191
skeye
Posté le 02-11-2011 à 07:20:54  profilanswer
 

uriel a écrit :


sur gmail ou calendar ça passe mais là c'est une UI mal conçue et moche  :/


ouais, on perd en lisibilité, je trouve...ça me donnait déjà cette impression dans gmail (qui a encore évolué ce matin), d'ailleurs.[:sadnoir]

Message cité 1 fois
Message édité par skeye le 02-11-2011 à 07:21:42

---------------
Can't buy what I want because it's free -
n°2109193
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 02-11-2011 à 08:09:06  profilanswer
 

Sinon, à propos des questions d'entretiens, vous poseriez quoi comme questions de base à un junior (< 2 ans d'XP pro) en C++ ? J'ai trouvé qques trucs intéressants sur le Net mais tout avis est le bienvenu.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°2109194
verdoux
And I'm still waiting
Posté le 02-11-2011 à 08:21:24  profilanswer
 

"Hormis ce langage abscons, archaïque et pénible qu'est le C++, quel langage prétendriez vous un peu maîtriser ?"
 
Si il est incapable d'en citer un, ne pas poursuivre l'entretien :o

n°2109196
vapeur_coc​honne
Stig de Loisir
Posté le 02-11-2011 à 08:34:01  profilanswer
 

Taiche a écrit :

Sinon, à propos des questions d'entretiens, vous poseriez quoi comme questions de base à un junior (< 2 ans d'XP pro) en C++ ? J'ai trouvé qques trucs intéressants sur le Net mais tout avis est le bienvenu.


"pourquoi vous passez pas des concours administratif ? "


---------------
marilou repose sous la neige
n°2109197
vapeur_coc​honne
Stig de Loisir
Posté le 02-11-2011 à 08:34:11  profilanswer
 

\o/j'habite vincennes


---------------
marilou repose sous la neige
n°2109198
kadreg
profil: Utilisateur
Posté le 02-11-2011 à 08:35:32  profilanswer
 

vapeur_cochonne a écrit :

\o/j'habite vincennes


 
\o/
 


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°2109199
vapeur_coc​honne
Stig de Loisir
Posté le 02-11-2011 à 08:40:17  profilanswer
 

personne a un reçu de carte navigo mensuelle ? [:meganne]


---------------
marilou repose sous la neige
n°2109200
Dion
Acceuil
Posté le 02-11-2011 à 08:45:00  profilanswer
 

Taiche a écrit :

Sinon, à propos des questions d'entretiens, vous poseriez quoi comme questions de base à un junior (< 2 ans d'XP pro) en C++ ? J'ai trouvé qques trucs intéressants sur le Net mais tout avis est le bienvenu.


Des tests de francais/anglais pour voir s'il parle autre chose qu'hindi ou vietminh ?


---------------
When it comes to business/legal topics, just assume almost everyone commenting has no idea what they’re taking about and have no background in these subjects because that’s how it really is. Harkonnen 8-> Elmoricq 8====>
n°2109201
gfive
Posté le 02-11-2011 à 08:56:39  profilanswer
 

uriel a écrit :


sur gmail ou calendar ça passe mais là c'est une UI mal conçue et moche  :/


 
gmail, je le trouve pas super lisible dans sa nouvelle UI : ça manque de séparation des différentes zones de l'écran.  
 
Des bordures, même très fines et peu contrastées, seraient les bienvenues.
 
 

Taiche a écrit :

Sinon, à propos des questions d'entretiens, vous poseriez quoi comme questions de base à un junior (< 2 ans d'XP pro) en C++ ? J'ai trouvé qques trucs intéressants sur le Net mais tout avis est le bienvenu.


 
Mon ancien N+1 avait posé comme question à un pote : "c'est quoi votre classe Java préférée?" :D
 
Sinon, je suis tombé sur des mecs un peu bizarres : pour un poste d'archi, ils m'ont demandé comment compter les bits à 1 d'un long.
 
Pour faire du web [:pingouino]
 
Quand je leur ai dit sorti un truc du genre  
 

Code :
  1. for (i = 62;  >= 0; i--) {
  2. if ((n - 2^i) >= 0) {
  3.     total++;
  4.     n = n - 2^i;
  5. }
  6. }


 
Ils m'ont dit "ouais, ça marche, mais y'a plus simple, et les long c'est sur 32 bits".
Sauf que je fais du java, pau'tache :o


---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
n°2109203
el muchach​o
Comfortably Numb
Posté le 02-11-2011 à 08:58:22  profilanswer
 

C'est assez bizarre, le comportement de Java.
J'ai optimisé un peu le petit programme d'hier  (passé de 14s à 2s pour 1000 points), et j'en tire quelques enseignements.

 
Code :
  1. static List<Point> longestAlignment(Point[] points) {
  2.         List<Point> longest = new ArrayList<Point>();
  3.         Point p, q, r;
  4.         // find all the possible alignments
  5.         int num_points = points.length;
  6.         for (int i = 0; i < num_points; i++) {
  7.             for (int j = 1; j < num_points; j++) {
  8.                 p = points;
  9.                 q = points[j];
  10.                 if (p.equals(q))
  11.                     break;
  12.                 List<Point> align = new ArrayList<Point>();
  13.                 align.add(p);
  14.                 align.add(q);
  15.                 for (int k = 0; k < num_points; k++) {
  16.                     r = points[k];
  17.                     if (q.equals(r))
  18.                         break;
  19.                     if ((q.x - p.x) * (r.y - q.y) == (q.y - p.y) * (r.x - q.x))
  20.                         align.add(r);
  21.                 }
  22.                 if (align.size() > longest.size())
  23.                     longest = align;
  24.            }
  25.         }
  26.         return longest;
  27.     }


Le plus gros gain est de loin le remplacement de ArrayList<Point> par Point[]. Contrairement à C++, l'utilisation des containers en Java a un coût non négligeable x2 ici.
Le fait de déclarer Point en tête de fonction plutôt que dans le corps fait gagner encore un peu, par contre déclarer List<Point> align en tête fait [i]perdre des perfs. Bizarrre.
Le fait de remplacer l'appel à la fonction colinear(p,q,r) par son contenu fait gagner encore 50%, mais curieusement faire la même chose avec la fonction equals ne donne rien. Le compilateur ferait-il de l'inlining ?
(Question bonux: Je n'ai pas compris pourquoi le fait de remplacer les if(p.equals(q)) par un simple if(i == j) change radicalement le fonctionnement du programme...)
Toujours est-il que réduire la fonction equals au strict minimum plutôt que la version complète proposée par eclipse fait passer le temps de 4 à 2,5s.

Message cité 3 fois
Message édité par el muchacho le 02-11-2011 à 09:32:57

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2109204
LePhasme
Les Belges domineront le monde
Posté le 02-11-2011 à 08:58:47  profilanswer
 

beel1 a écrit :


Je parlais d'un afficheur à base de matrices de LEDs par ex. :spamafote:
 
C'est ptêt moins classe qu'un plasma, mais point de vue visibilité de loin, luminosité, angles de vision, conso... [:spamafote]


 
C'est bien toi qui avait parlé d'un aspirateur assez silencieux et performant il y a longtemps ? C'était bien un electrolux ultrasilencer ?


---------------
Instagram - Mon PVT en Australie.
n°2109205
uriel
blood pt.2
Posté le 02-11-2011 à 09:03:10  profilanswer
 

skeye a écrit :

gmail (qui a encore évolué ce matin), d'ailleurs.[:sadnoir]


mais WTF, ils ont pris le pire du reader et ont réussi à le mettre dans gmail [:pingouino]


---------------
IVG en france
n°2109206
skeye
Posté le 02-11-2011 à 09:09:08  profilanswer
 

uriel a écrit :


mais WTF, ils ont pris le pire du reader et ont réussi à le mettre dans gmail [:pingouino]


Ils uniformisent.[:doc petrus]


---------------
Can't buy what I want because it's free -
n°2109207
uriel
blood pt.2
Posté le 02-11-2011 à 09:12:57  profilanswer
 

gfive a écrit :


gmail, je le trouve pas super lisible dans sa nouvelle UI : ça manque de séparation des différentes zones de l'écran.  
 
Des bordures, même très fines et peu contrastées, seraient les bienvenues.


 
pareil et c'est quoi ce liseret bleu à la con sur le dernier mail selectionné :??:


---------------
IVG en france
n°2109208
skeye
Posté le 02-11-2011 à 09:16:12  profilanswer
 

uriel a écrit :


 
pareil et c'est quoi ce liseret bleu à la con sur le dernier mail selectionné :??:


probablement un rappel visuel pour savoir où t'es positionné, pour les commandes clavier.


---------------
Can't buy what I want because it's free -
n°2109209
nraynaud
lol
Posté le 02-11-2011 à 09:17:27  profilanswer
 

el muchacho a écrit :

C'est assez bizarre, le comportement de Java.  
J'ai optimisé un peu le petit programme d'hier  (passé de 14s à 2,2s pour 1000 points), et j'en tire quelques enseignements.
 

Code :
  1. static List<Point> longestAlignment(Point[] points) {
  2.         List<Point> longest = new ArrayList<Point>();
  3.         Point p, q, r;
  4.         // find all the possible alignments
  5.         int num_points = points.length;
  6.         for (int i = 0; i < num_points; i++) {
  7.             for (int j = 1; j < num_points; j++) {
  8.                 p = points;
  9.                 q = points[j];
  10.                 if (p.equals(q))
  11.                     break;
  12.                 List<Point> align = new ArrayList<Point>();
  13.                 align.add(p);
  14.                 align.add(q);
  15.                 for (int k = 0; k < num_points; k++) {
  16.                     r = points[k];
  17.                     if (p.equals(r) || q.equals(r))
  18.                         break;
  19.                     if ((q.x - p.x) * (r.y - q.y) == (q.y - p.y) * (r.x - q.x))
  20.                         align.add(r);
  21.                 }
  22.                 if (align.size() > longest.size())
  23.                     longest = align;
  24.            }
  25.         }
  26.         return longest;
  27.     }


Le plus gros gain est de loin le remplacement de ArrayList<Point> par Point[]. Contrairement à C++, l'utilisation des containers en Java a un coût non négligeable x2 ici.
Le fait de déclarer Point en tête de fonction plutôt que dans le corps fait gagner encore un peu, par contre déclarer List<Point> align en tête fait [i]perdre des perfs. Bizarrre.
Le fait de remplacer la fonction colinear(p,q,r) par son contenu fait gagner encore 50%, mais curieusement faire la même chose avec la fonction equals ne donne rien. Le compilateur ferait-il de l'inlining ?
(Question bonux: Je n'ai pas compris pourquoi le fait de remplacer les if(p.equals(q)) par un simple if(i == j) change radicalement le fonctionnement du programme...)
Toujours est-il que réduire la fonction equals au strict minimum plutôt que la version complète proposée par eclipse fait passer le temps de 4 à 2,5s.


je crois que c'est inliné à partir de 1000 passages dans une boucle.


---------------
trainoo.com, c'est fini
n°2109210
uriel
blood pt.2
Posté le 02-11-2011 à 09:21:29  profilanswer
 

skeye a écrit :


probablement un rappel visuel pour savoir où t'es positionné, pour les commandes clavier.


apres avoir regardé la video, j'ai changé la 'densité' et c'est un peu mieux. y a surement des trucs interessants (la recherche box par exemple)


Message édité par uriel le 02-11-2011 à 09:22:37

---------------
IVG en france
n°2109211
beel1
Posté le 02-11-2011 à 09:22:01  profilanswer
 

LePhasme a écrit :


 
C'est bien toi qui avait parlé d'un aspirateur assez silencieux et performant il y a longtemps ? C'était bien un electrolux ultrasilencer ?


yep :jap:

n°2109212
gfive
Posté le 02-11-2011 à 09:25:12  profilanswer
 

:o Le bouton "nouveau message" dans gmail


---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
n°2109213
el muchach​o
Comfortably Numb
Posté le 02-11-2011 à 09:28:28  profilanswer
 

Ah, un jocebug, le forum bouffe maintenant aléatoirement les [ ... ], en ligne 8, il y a bien points[i]


Message édité par el muchacho le 02-11-2011 à 09:29:24

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°2109214
skeye
Posté le 02-11-2011 à 09:29:13  profilanswer
 

gfive a écrit :

:o Le bouton "nouveau message" dans gmail


[:autobot]


---------------
Can't buy what I want because it's free -
n°2109215
uriel
blood pt.2
Posté le 02-11-2011 à 09:32:27  profilanswer
 

gfive a écrit :

:o Le bouton "nouveau message" dans gmail


au moins là, le fait que ce soit le plus visible a un sens. sur reader j'utilise le bouton suscribe toutes les 3 semaines au maximum et c'est pourtant le truc le plus gros et visible :/


---------------
IVG en france
n°2109216
LePhasme
Les Belges domineront le monde
Posté le 02-11-2011 à 09:43:27  profilanswer
 


Merci :jap:


---------------
Instagram - Mon PVT en Australie.
n°2109217
gfive
Posté le 02-11-2011 à 09:48:44  profilanswer
 


 

uriel a écrit :


au moins là, le fait que ce soit le plus visible a un sens. sur reader j'utilise le bouton suscribe toutes les 3 semaines au maximum et c'est pourtant le truc le plus gros et visible :/


 
Nouveau est dans le bouton.
 
Message est dessous, en thème normal on le voit à peine :D


---------------
Tous les sud africains sont ségrégationistes, à part Ted. (P. Desproges)
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  19273  19274  19275  ..  26991  26992  26993  26994  26995  26996

Aller à :
Ajouter une réponse
 

Sujets relatifs
Plus de sujets relatifs à : [blabla@olympe] Le topic du modo, dieu de la fibre et du monde


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)