Maison  >  Article  >  développement back-end  >  Comment ajouter de grands entiers à l'aide de tableaux PHP

Comment ajouter de grands entiers à l'aide de tableaux PHP

PHPz
PHPzoriginal
2023-04-23 10:19:29679parcourir

À mesure que les ordinateurs modernes sont de plus en plus utilisés dans la vie quotidienne, il est devenu de plus en plus difficile pour les ordinateurs modernes de répondre aux besoins de traitement de données à grande échelle. Dans le développement réel, nous devons souvent effectuer des opérations telles que l'addition, la soustraction, la multiplication, la division, etc. sur de grands entiers, et ces opérations doivent souvent dépasser la plage d'entiers habituellement prise en charge par les ordinateurs. Afin de résoudre ces problèmes, nous devons utiliser des structures de données et des algorithmes informatiques. Cet article explique comment utiliser les tableaux PHP pour ajouter de grands entiers.

1. Méthode de représentation des grands entiers

Dans les ordinateurs, la représentation en complément à deux des entiers est généralement utilisée, dans laquelle le complément d'un entier positif est sa représentation binaire, et le complément d'un entier négatif est la représentation binaire de son valeur absolue. La représentation est inversée au niveau du bit, puis 1 est ajouté. Toutefois, si vous souhaitez gérer des entiers volumineux dépassant la plage d’entiers prise en charge par votre ordinateur, vous devez utiliser d’autres méthodes de représentation.

Une façon courante de représenter de grands entiers consiste à utiliser une représentation sous forme de chaîne, où chaque chiffre est représenté par un caractère. Par exemple, une chaîne représentant le nombre décimal 1234567890 peut être représentée par « 1234567890 ». Cependant, l’utilisation de chaînes pour représenter des nombres est inefficace lors de l’exécution d’opérations numériques. Nous devons donc utiliser d’autres structures de données pour représenter de grands entiers.

Une autre méthode couramment utilisée pour représenter de grands entiers consiste à utiliser la représentation matricielle. Dans cette méthode, nous convertissons un grand entier en un tableau, où chaque élément représente un bit entier. Par exemple, un tableau représentant le nombre décimal 1234567890 peut être représenté par [1,2,3,4,5,6,7,8,9,0]. L'avantage d'utiliser un tableau pour représenter de grands entiers est que les opérations numériques peuvent être effectuées plus efficacement et peuvent également économiser de l'espace de stockage, car si certains des nombres d'ordre supérieur sont 0, ils n'ont pas besoin d'être représentés dans le tableau. .

2. Comment ajouter de grands entiers à l'aide de tableaux PHP

En PHP, nous pouvons utiliser des tableaux pour représenter et ajouter de grands entiers. Voici le code PHP :

function addBigIntegers($a, $b) {
  //将数组a和b的长度对齐
  while (count($a) < count($b)) {
    $a[] = 0;
  }
  while (count($b) < count($a)) {
    $b[] = 0;
  }
  $carry = 0; //表示进位数
  $result = array(); //保存结果的数组
  for ($i = count($a) - 1; $i >= 0; $i--) {
    $sum = $a[$i] + $b[$i] + $carry; //计算当前位上的和
    $carry = intval($sum / 10); //计算进位数
    $result[$i] = $sum % 10; //计算当前位上的结果
  }
  if ($carry > 0) {
    array_unshift($result, $carry); //如果最高位有进位,将进位添加到结果数组中
  }
  return $result;
}

$a = array(1, 2, 3, 4, 5); 
$b = array(9, 8, 7, 6, 5);
$result = addBigIntegers($a, $b);
echo implode("", $result); //输出结果的十进制表示

Dans le code ci-dessus, la fonction addBigIntegers est utilisée pour ajouter deux tableaux de grands entiers et renvoyer le tableau résultat. Dans la fonction, nous alignons d’abord les longueurs des deux tableaux en ajoutant 0 à la fin du tableau le plus court. Ensuite, nous ajoutons en commençant par le bit le plus élevé du tableau, calculons la somme, reportons le numéro et le résultat au bit actuel, et enregistrons le résultat dans un nouveau tableau. Enfin, s'il y a une retenue à partir du bit le plus élevé, la retenue est ajoutée au début du tableau de résultats.

Pour entrer dans cette fonction, nous pouvons utiliser des tableaux de longueurs arbitraires pour représenter de grands entiers car la fonction aligne automatiquement les longueurs de ces tableaux. La sortie est un tableau, où chaque élément représente un bit entier du résultat. Si vous devez représenter le résultat sous forme de nombre décimal, vous pouvez le faire en convertissant les nombres du tableau de sortie en caractères, puis en les concaténant ensemble.

Résumé

Cet article présente la méthode d'ajout de grands entiers avec des tableaux PHP. Dans le développement réel, cette méthode est très pratique car elle peut gérer efficacement des opérations sur des entiers volumineux et économiser de l'espace de stockage. Lorsque vous utilisez cette méthode, il suffit de convertir les gros entiers en tableaux et de les ajouter à l'aide de la fonction addBigIntegers. Si vous devez effectuer d'autres opérations numériques, vous pouvez étendre cette méthode.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn