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

[Blabla] le /pub des barbus libres

JameaGourmand
JameaGourmand
Niveau 7
21 août 2014 à 17:24:38

Putain personne a un moyen efficace de vérifier si une liste de nombres contient des nombres positifs et négatifs alternativement? :rire:

Je galère depuis tout à l'heure sur ce truc de merde :noel:

Genre qui renvoie vrai si j'ai

[1,-1,2,-4] ou [-1,1,-3,1] mais faux si j'ai [-1,-1,1,1,1] :hap:

vava740
vava740
Niveau 10
21 août 2014 à 17:25:01

en courant*

Heureusement y'a une interface « Skype pour bureau Windows » qui est acceptable, mais c'est pas plus simple à installer que Pidgin.

LEpigeon-888
LEpigeon-888
Niveau 12
21 août 2014 à 17:29:04

Si en multipliant deux nombre consécutif t'obtiens un nombre positif c'est que ça alterne pas :oui:

vava740
vava740
Niveau 10
21 août 2014 à 17:31:02

@JameaGourmand assert((tab[i] > 0 && tab[i - 1] < 0) || tab [i - 1] > 0)

vava740
vava740
Niveau 10
21 août 2014 à 17:37:45

Mon code passe pas les tests en fait, /ignore. (Je parle décidément trop vite aujourd'hui.)

assert(tab[i] > 0 ? tab[i - 1] < 0 : tab[i - 1] > 0);

Ou pour pas faire le -1 deux fois :

assert(tab[i - 1] > 0 ? tab[i] < 0 : tab[i] > 0);

JameaGourmand
JameaGourmand
Niveau 7
21 août 2014 à 17:40:55

Ouais mais tu vérifies que les bornes là, si j'ai un nombre impair d'élements ça ne fonctionne pas tout le temps :(

Ouais je crois que je vais faire ça, encore faudrait-il pouvoir grouper deux élements consécutifs entre eux :hap: (je le fais en Haskell :peur: )

vava740
vava740
Niveau 10
21 août 2014 à 17:46:58

@JameaGourmand Comment ça vérifier que les bornes ?

Ah oui j'ai oublié de préciser, pour ma version faut sauter le premier élément (puisqu'il est checké avec le i-1).

Et c'est pas ce qu'on fait de plus opti non plus vu qu'on vérifie à chaque fois le signe du nombre précédent, ça pourrait être gardé en mémoire.

assert(length > 0);

bool positive = tab[0] > 0; // Ou >= selon tes critères
size_t i;

for (i = 1; i < length; i++) {
assert(positive ? tab[i] < 0 : tab[i] > 0);
positive = !positive;
}

JameaGourmand
JameaGourmand
Niveau 7
21 août 2014 à 17:55:17

Bah en langage impératif c'est immédiat en effet, j'ai réussi à faire un truc qui fonctionne mais qui est très très sale :hap:

http://pastebin.com/X0C30sAR

Bah dans ton truc tu vérifiais que les bornes de la liste, sauf là ou tu fais une boucle

Nh3xus
Nh3xus
Niveau 10
21 août 2014 à 18:07:07

ça y est, la fibre est passée en phase de commercialisation pour mon village \ :noel: /

Ya une réunion de présentation le 28 \ :noel: /

J'vais pouvoir shitposter à vitesse grand V. :noel:

Dark_Chouhartem
Dark_Chouhartem
Niveau 11
21 août 2014 à 18:10:37

JameaGourmand :d) C'est parce que tu ne maîtrise pas la puissance des fonctions d'ordre supérieur :noel:
http://paste.isomorphis.me/chouhartem/hF8

Sinon non, j'ai chié le concours, du coup je suis rentré sur dossier :noel:

JameaGourmand
JameaGourmand
Niveau 7
21 août 2014 à 18:14:05

Ouais j'ai abordé les fonctions d'ordre supérieur mais ce genre de code par exemple j'arrive pas à le comprendre :rire:

Pourquoi je suis pourri :snif:

Bon d'un côté ça fait moins d'une semaine que j'ai commencé le Haskell :noel:

T'es bon en Haskell :question:

Dark_Chouhartem
Dark_Chouhartem
Niveau 11
21 août 2014 à 18:14:57

Absolument pas, c'est de l'OCaml que je t'ai pondu :noel.

JamyGourmand
JamyGourmand
Niveau 8
21 août 2014 à 18:36:12

Putain ça se ressemble :rire:

Je me disais quand j'ai vu le let rec :hap: J'imagine que les similarités sont dûes au paradigme fonctionnel :hap:

Combien d'années avant de comprendre ce code? :hap:

Nh3xus
Nh3xus
Niveau 10
21 août 2014 à 18:58:00

J'ai déjà fais de l'OCaml... mais sans jamais biter aux histoires de complexités. :noel:

O(n²) et compagnie :noel:

Dark_Chouhartem
Dark_Chouhartem
Niveau 11
21 août 2014 à 18:58:20

JamyGourmand :d) Oui, c'est pour ça que je me suis permis de répondre avec ça :noel:

Si tu veux la traduction de mon code en Haskell, voilà un article introductif sur le sujet : http://science.raphael.poss.name/haskell-for-ocaml-programmers.html

Ya rien de compliqué dans mon code, faut juste avoir le réflexe de penser aux fonctions préétablies comme for_all pour tester si une propriété est vraie pour tout :ok: (et |> c'est l'opérateur de composition inverse, c'est juste pour la lisibilité)

Dark_Chouhartem
Dark_Chouhartem
Niveau 11
21 août 2014 à 19:01:25

Nh3xus :d) La complexité c'est pas que de l'OCaml, tu retrouves ça partout en algorithmique :(

Nh3xus
Nh3xus
Niveau 10
21 août 2014 à 19:11:45

Je sais, mais c'est en cours de OCaml que j'ai été introduit à ces notions de complexité.

vava740
vava740
Niveau 10
21 août 2014 à 19:24:37

@JameaGourmand en Haskell j'aurais fait ça, mais on doit pouvoir faire mieux vu mon niveau dans ce langage. :hap:

https://gist.github.com/aanonymous/ed1c53aa1a2a540d31d9

@Nh3xus Pour vulgariser, la notation O() permet de calculer une relation entre la taille d'un input et un observable (temps d'exécution ou utilisation mémoire en général).

Typiquement « la quantité de mémoire utilisée sera proportionnel au nombre d'élément en entrée » (O(n)) et « la quantité de mémoire utilisée sera constante » (O(1)).

JamyGourmand
JamyGourmand
Niveau 8
21 août 2014 à 19:28:55

Sympa l'article j'irais lire :oui:

En effet pas mal le code vava j'aurais pas pensé comme ça, c'est déjà plus simple :hap:

Dark_Chouhartem
Dark_Chouhartem
Niveau 11
21 août 2014 à 19:35:13

Bam, one-liner trouvé basé sur le trick « tl l et l sont décalés d'une case » :

let is_alternate l = try List.for_all2 (fun a b -> a*b<=0) l (0::l) with _ -> true

En temps : O(n) (on peut pas faire mieux) et surcoût mémoire O(1) (genre précedemment ça devait évaluer la liste (l[i],l[i-1]) -> O(n) en plus en mémoire).

coloration : http://paste.isomorphis.me/Chouhartem/9xC

Nh3xus :d) C'est dommage parce que c'est toujours utile pour évaluer les perfs de ses algos comme j'ai fait :(

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