Ich benutze GMP-Bibliothek von PHP, um ein Problem der Formel zu lösen.Convert GMP ganzzahlig zu einer Summe von zwei (2n)
public function gmp_sum($aRessource)
{
// Avec le while
$i = 0;
$nb_ressource = count($aRessource);
while ($i < $nb_ressource)
{
if ($i == 0)
{
$tmp = gmp_init($aRessource[$i]);
}
else
{
$tmp = gmp_add(gmp_init($aRessource[$i]),$tmp);
}
$i++;
}
return $tmp;
}
Die Variable $ aRessource ist gleich: array (1,2,4,8);
so ist meine Funktion gmp_sum 15. Rückkehr
ich einen Algorithmus erstellt werden soll, der die umgekehrte Operation der Fall ist, nehmen die Funktion die ganze Zahl 15 und das Rück mir eine Anordnung, die 1 2 4 8 enthält Aber ich nicht wissen, wo ich anfangen soll.
Danke für die Hilfe
Lösung:
Decompose integer zu Potenz von 2 in PHP
public function gmp_reverse($gmp_sum)
{
$res = array();
$i = 1;
while ($i < 64) // 64 bytes
{
$tmp = $gmp_sum & $i; // check if bytes equal to 1
if ($tmp != 0)
{
array_push($res,$i);
}
$i = $i * 2;
}
return $res;
}
Wie teilen Sie 15 zu 1 2 4 8 ?? Kannst du die Ausgabe erklären –
@rahulpatel Ehrlich gesagt weiß ich nicht genau mich selbst, aber es ist die Umkehrung meiner Funktion –
Ich habe mit der Lösung auf Ganzzahl in Potenz von 2 Summe –