[PHP] Problème Array : test de valeurs negatives de suite

Problème Array : test de valeurs negatives de suite [PHP] - PHP - Programmation

Marsh Posté le 10-02-2009 à 16:13:20    

hello,
 
J'ai un Array qui contient un certain nombre de données...
 
Je voudrais faire des tests dans cet array, pour savoir combien il y a :
1. 2 valeurs negatives DE SUITE
2. 3 valeurs negatives DE SUITE
2. etc...
 
Avez-vous des idées ?
 
merci !

Reply

Marsh Posté le 10-02-2009 à 16:13:20   

Reply

Marsh Posté le 10-02-2009 à 16:17:09    

Que veut dire "de suite"? "à la suite les unes des autres"? "qui se suivent"? "bleu"?


Message édité par masklinn le 10-02-2009 à 16:17:30

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 10-02-2009 à 16:37:00    

oui, a la suite les unes des autres... qui se suivent... :)
 

Reply

Marsh Posté le 10-02-2009 à 16:52:50    

Code :
  1. $array = array(1,-2,-3,4,-6);
  2. $prev_neg = false;
  3. $suite = 0;
  4.  
  5. foreach($array as $val){
  6.    if ($val < 0){
  7.        if ($prev_neg){
  8.            $suite++;
  9.        }
  10.        $prev_neg = true;
  11.    }
  12.    else {
  13.        $prev_neg = false;
  14.    }
  15. }
  16.  
  17. // $suite contient apres le foreach le nombre de 2 valeurs negatives DE SUITE


 
tu as l'exemple pour 2 valeurs de suite, apres, à toi de le faire pour n val,
 
mais je pense que c'est optimisable, et largement optimisable ;)

Reply

Marsh Posté le 10-02-2009 à 19:08:12    

jay-jay69 a écrit :

oui, a la suite les unes des autres... qui se suivent... :)
 


Et ty veux la suite la plus longues, ou toutes les suites?


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 26-04-2009 à 21:01:24    

hello !
 
j'ai un peu le mm souci, sauf que je veux compter le nb d'occurence negatives isolées, dans un array...
 
L'idée est de compter les valeurs négatives isolées : une valeur negtive, entourée de valeurs positives... :)
 
j'ai adapté la proposition comme suite :

Code :
  1. $prev_neg = true;
  2.  $nb_perte1 = 0;
  3.  foreach($arr_perf as $val){   
  4.  if ($val < 0){       
  5.  if ($prev_neg){           
  6.  $nb_perte1++;       
  7.  }       
  8.  $prev_neg = false;   
  9.  }   
  10.  else {       
  11.  $prev_neg = true;   
  12.  }
  13.  }


 
 
merci d'avance,
 
m.

Reply

Marsh Posté le 27-04-2009 à 08:07:21    

up
 

Reply

Marsh Posté le 27-04-2009 à 09:53:04    

help plz ? :)

Reply

Marsh Posté le 27-04-2009 à 09:58:02    

Personnellement j'extrairais une liste de 3-tuples (prev, current, next) de mon array e.g.
 

Code :
  1. [1,2,3,4,5,6]


qui devient

Code :
  1. [(None, 1, 2), (1, 2, 3), (2, 3, 4), (3, 4, 5), (4, 5, 6), (5, 6, None)]


et derrière t'as plus qu'à tester chaque 3-tuple pour savoir si il matche (>0, <0, >0).


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 27-04-2009 à 10:04:22    

ca peut etre une idée...
 
mais je comprends pas pkoi mon truc marche pas... bizarre bizarre !

Reply

Marsh Posté le 27-04-2009 à 10:04:22   

Reply

Marsh Posté le 28-04-2009 à 15:57:09    

up ?

Reply

Marsh Posté le 28-04-2009 à 16:18:18    

fais ske t'as dit masklin, la toi tu ne teste que les valeurs precedentes je pense :jap:

Reply

Marsh Posté le 28-04-2009 à 19:34:49    

effectivement...
mais j'ai bien peur que mes compétences ne m'aident pas trop... un p'tit coup de pouce ne serait pas de refus ! :)
 
:jap:

Reply

Marsh Posté le 29-04-2009 à 09:41:54    

un peu d'help ??

Reply

Sujets relatifs:

Leave a Replay

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