Convertir un shéma mathématique en PHP...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Convertir un shéma mathématique en PHP...

par Spols » 29 mai 2007, 14:53

le problème c'est si il y a plusieurs chiffres aussi proche les uns que les autres

?php
$chiffres = array('12','184','1274','13274','1','37','1','64','134','1','16');
$chiffre_comparaison = 3;
comparaison($chiffres,$chiffre_comparaison);

function comparaison($array,$comp)
{
	$diff = abs($comp - $array[0]);
	echo"<pre>";var_dump($diff);echo"</pre>";
	foreach($array as $val)
	{
		$temp = abs($comp - $val);
		if ($diff > $temp)
		{$diff = $temp;$grds = $val;}
		elseif ($diff == $temp)
		{$grds .= " ".$val;}
	}
	$explode = (substr_count($grds,' ')) ? explode(' ',$grds) : $grds;
	if (is_array($explode))
	{
		$echo = "$comp est aussi proche de";
		foreach($explode as $val)
		{
			$echo .= " $val que de";
		}
		echo substr($echo,0,strlen($echo)-7);
	}
	else
	{
		echo "$comp est plus proche de $explode";
	}
	
}
?>
pas terrible pour le message, a voir ce que tu veux vraiment

par orgerix » 28 mai 2007, 21:08

Je dirais qu'il faut faire un truc de ce style
$chiffre_comparaison=
$chiffre1=
$chiffre2=
$chiffre3=
$chiffre4=
[...]
$compar["$chiffre1"]=abs($chiffre_comparaison-$chiffre1);
$compar["$chiffre2"]=abs($chiffre_comparaison-$chiffre2);
$compar["$chiffre3"]=abs($chiffre_comparaison-$chiffre3);
$compar["$chiffre4"]=abs($chiffre_comparaison-$chiffre4);
[...]
//trie le tableau en fonction de la différence
asort($compar);
//lit la premiere clé du tableau
$nombre = key($compar)
Cependant, je ne suis pas sur de la dernière ligne car je ne suis pas habitué à lire une seul donnée d'un tableau

par zaknaou. » 28 mai 2007, 20:54

Est-ce possible avec un nombre indéterminé de nombre à comparer du genre
$chiffre1
$chiffre2
$chiffre3
$chiffre4
... (indéterminé)
par rapport à
$chiffre_comparaison

par Spols » 28 mai 2007, 18:31

voila ce que moi je ferais, je n'ai pas récuperé le schémas de ton amis, il y a selon moi plus simple comme ceci
<?php
$chiffre1 = 2100;
$chiffre2 = -652;

$chiffre_comparaison = 52;

$dif1 = abs($chiffre1 - $chiffre_comparaison);
$dif2 = abs($chiffre2 - $chiffre_comparaison);
if ($dif1 == $dif2)
{echo "$chiffre_comparaison est aussi proche de $chiffre1 que de $chiffre2";}
elseif ($dif1 < $dif2)
{echo "$chiffre_comparaison est plus proche de $chiffre1 que de $chiffre2";}
elseif ($dif1 > $dif2)
{echo "$chiffre_comparaison est plus proche de $chiffre2 que de $chiffre1";}
?>

par ouckileou » 28 mai 2007, 18:22

Si tu indentais déjà ?

Convertir un shéma mathématique en PHP...

par zaknaou » 28 mai 2007, 17:09

Bonjour...

Un amis à consacré quelques minutes pour m'aider à developper un petit script matématique qui permet de savoir lequels de ces deux chiffre est le plus prés de $c

$a = (un certain chiffre)
$b = (un certain chiffre)
$c = (un certain chiffre)

Le problème est que le script mathématique de mon amis n'est pas en php, et qu'il ne sais pas utiliser ce language...

Je voudrai donc le traduire mais ce n'est pas facile...

Voici l'original (de mon amis)...
si
$a = $b
{
"$c est aussi proche de $b que de $a"
}
sinon
{
si($1 = $a - $c)>0
sinon
{
si($2 = $b - $c)>0
{
si($2 < $1)
{
"$c est plus proche de $b"
}
sinon
{
"$c est plus proche de $a"
}
sinon
{
si(-$2<$1)
{
"$c est plus proche de $b"
}
sinon
{
"$c est plus proche de $a"
}
sinon
{
si($2 = $b - $c)>0
{
si($2 < -$1)
{
"$c est plus proche de $b"
}
sinon
{
"$c est plus proche de $a
}
sinon
{
si(-$2 < -$1)
{
"$c est plus proche de $b"
}
sinon
{
"$c est plus proche de $a"
}
}
}
}
}
}
Il ma dit qu'il falait revoir ça, car il y a peut être quelques erreurs...

Et voici ma traduction vers php un peu raté...
<?php

$a = "254";
$b = "120";
$c = "2000";

if ($a = $b)
{echo "$c est aussi proche de $b que de $a";}
else
{
$un = $a - $c;
if( $un > 0)
// else
{
$deux = $b - $c;
if( $deux > 0 )
{
if($deux < $un)
{echo "$c est plus proche de $b";}
else
{echo "$c est plus proche de $a";}
// else mais pas 2 else dans un if
{
if(-$deux < $un)
{echo "$c est plus proche de $b";}
else
{echo "$c est plus proche de $a";}
// else mais pas 2 else dans un if
{
$deux = $b - $c;
if($deux > 0)
{
if($deux < -$un)
{echo "$c est plus proche de $b";}
else
{"$c est plus proche de $a}
else
{
if(-$deux < -$un)
{echo "$c est plus proche de $b";}
else
{echo "$c est plus proche de $a";}
}
}
}
}
}

?>
Quel serait votre traduction ??

Merci...