Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: modulo z liczb
Forum PHP.pl > Forum > Przedszkole
pegass
mam problem int jest ograniczony do 2147483647
a ja musze znalesc reszte z dzielenia
124020929319000000000001122500 przez 97 powinna wyjsc 13
$reszta = $cyfra % 97
daje wynik w int ;(
co jest dla mnie problemem
TomASS
Zobacz tutaj smile.gif
pegass
troszke mi to niebardzo pomogło
TomASS
To może to Ci pomoże.
Cytat
W trakcie obliczeń należy podzielić długi ciąg cyfr na mniejsze porcje i na nich zrobić obliczenia w trybie tak jak to się robi na papierze. Maksymalna liczba cyfr w podzielonych liczbach zależy od typu całkowitoliczbowego jaki wybierzemy do reprezentacji tych liczb.

Przykład:
  123456789012  dzielimy na dwie liczby:
  123456  i  789012
  123456 MOD 97 = 72 
resztę z dzielenia dopisujemy na początku drugiego kawałka
72789012 MOD 97 = 18  to jest właśnie wynik dzielenia
całkowitego liczby 123456789012 przez 97
pegass
zrobilem to na bcmod ale dalej mi wychodz 5 zamiast 13 ;(

sorki
moj blad zamiast 122500 mialo byc 212500
bcmod jest dosyc dobry smile.gif
polecam ewentualnie na necie znalazłem:
function my_bcmod( $x, $y )
  1. <?php
  2. {
  3.  $take = 5;
  4.  $mod = '';
  5.  
  6.  do
  7.  {
  8.  $a = (int)$mod.substr( $x, 0, $take );
  9.  $x = substr( $x, $take );
  10.  $mod = $a % $y;
  11.  }
  12.  while ( strlen($x) );
  13.  
  14.  return (int)$mod;
  15. }
  16. ?>


co tez działa
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.