Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    60

    Numero massimo utilizzabile?

    Saluti a tutti, ho uno script che effettua delle funzioni ricorsive in se stessa, per sfogliare un albero binario a partire dall'alto verso il basso, e memorizzando di volta in volta gli elementi nell'array con la seguente struttura

    $albero['posizione']['sx']['id']=1;
    $albero['posizione']['sd']['id']=2;

    ecc ecc

    dove posizione è il numero X relativo alla radice dell'albero, e quindi

    posizione_figlio_sx=posizione*2;
    posizione_figlio_sx=(posizione*2)+1;

    nessun problema fino ad un certo punto... purtroppo!

    la memorizzazione funziona correttamente fino a che il valore posizione è minore o uguale al valore

    1999999999999999999

    appena questo valore viene superato putroppo sballa tutto.

    c'è un modo per superare questo limite?

    chiaramente sarebbe meglio non avere limiti, per usi eventuali futuri...

    ps. il php.ini del server su cui viene lanciato lo script riporta

    precision 14
    memory_limit 128M

    per caso qualche valore tra questi permette di migliorare la situazione?


    pps. avete qualche idea migliore per sistemare la cosa?



    grazie mille in anticipo per l'aiuto!

  2. #2
    Utilizza le BCMath Arbitrary Precision Mathematics Functions

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    60


    non ho idea di cosa, siano, potresti darmi una mano?

    sembra che per attivarle debba inserire nel php.ini la seguente stringa:

    --enable-bcmath

    ma nel mio caso a cosa possono servire?

    ricordo che il mio problema è che questo numero diventa troppo alto e non riesco ad usarlo come indice di array (oltre a farci i due calcoli del caso).

    ti sarei grato mi potessi dare qualche ulteriore aiuto

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    60
    Originariamente inviato da matteor


    sembra che per attivarle debba inserire nel php.ini la seguente stringa:

    --enable-bcmath

    ma nel mio caso a cosa possono servire?

    ricordo che il mio problema è che questo numero diventa troppo alto e non riesco ad usarlo come indice di array (oltre a farci i due calcoli del caso).

    ti sarei grato mi potessi dare qualche ulteriore aiuto
    quoto me stesso, ho aggiunto la direttiva, sembrano essere attive;

    ho usato

    $posizione_sx=bcmul($posizione,2);
    $posizione_dx=bcadd($posizione_sx,1);

    per il calcolo, solo che nell'array non riesco ugualmente ad usare il valore come chiave (valori superiori a 1999999999999999999);

    come potrei aggirare questo problema?

  5. #5
    Originariamente inviato da matteor
    come potrei aggirare questo problema?
    Usando le BCMath Arbitrary Precision Mathematics Functions ...

    Se non sai cosa sono e come utilizzarle, non pensi che il primo passo dovrebbe essere aprire il manuale ufficiale ed iniziare a leggere?

    http://www.php.net/manual/en/ref.bc.php

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    60
    Originariamente inviato da filippo.toso
    Usando le BCMath Arbitrary Precision Mathematics Functions ...

    Se non sai cosa sono e come utilizzarle, non pensi che il primo passo dovrebbe essere aprire il manuale ufficiale ed iniziare a leggere?

    http://www.php.net/manual/en/ref.bc.php
    veramente l'ho letto il manuale, ho scritto sopra come le ho utilizzate per i calcoli;

    chiedevo però se quei numeri li posso usare come indice per gli array, che è la cosa che mi preme di più!

    stavolta non mi hai letto tu mi sa :P

  7. #7
    Codice PHP:
    <pre>
    <?php 
    $posizione 
    '1999999999999999999';
    $posizione_sx bcmul($posizione,2);
    var_dump($posizione);
    var_dump($posizione_sx);
    ?>
    </pre>
    Il manuale stavolta non lo hai letto bene mi sa ...

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2000
    Messaggi
    60
    perfetto, sono riuscito ad utilizzare correttamente le varie funzioni ed ad implementarle nello script!

    così in pratica quel numero viene automaticamente utilizzato come stringa, e in quanto tale è possibile usarlo come indice di array!

    grazie mille per l'aiuto!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.