Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Errore mini algoritmo

  1. #1

    Errore mini algoritmo

    Codice PHP:
    <?php 
    $pi
    =0
    $k=1
    for (
    $n=0;$n<=$k;$n++) {     
    $pi=4*(-1)^($n)/(2*($n)+1); 

    echo 
    $pi
    ?>
    Il risultato stampato dovrebbe essere 2.666666......invece è -4. Cosa sbaglio?

  2. #2
    Utente di HTML.it L'avatar di Gunn
    Registrato dal
    Feb 2006
    Messaggi
    370
    $pi viene sovrascritta ad ogni loop del for
    -10 points to SCLERO high top class [definition of SCLERO HIGH TOP CLASS: 90 random kills]

  3. #3
    Non so come mai da -4, ma matematicamente parlando è impossibile perchè

    (-1)^($n)
    Dove $n vale 0 significa fare 1/0, il che è matematicamente impossibile.
    http://negrita.com
    Grandissimi

    Solo quelli che sono così folli da pensare di cambiare il mondo, lo cambiano davvero.

  4. #4
    <?php
    $pi=0;
    $k=1;
    for ($n=0;$n<=$k;$n++) {
    $pi+=4*(-1)^($n)/(2*($n)+1);
    }
    echo $pi;
    ?>

    Grazie Gunn, ho modificato. Tuttavia ora mi da -8...

  5. #5

    Re: Errore mini algoritmo

    Originariamente inviato da starcraftworld
    Codice PHP:
    <?php 
    $pi
    =0
    $k=1
    for (
    $n=0;$n<=$k;$n++) {     
    $pi=4*(-1)^($n)/(2*($n)+1); 

    echo 
    $pi
    ?>
    Il risultato stampato dovrebbe essere 2.666666......invece è -4. Cosa sbaglio?
    l'espressione da te scritta non farà mai 2.666 (nemmeno mettendo "$pi+=").

    Semplicemente percheè l'operatore "^" non equivale all'elevazione a potenza ma all'operatore xor.


    Qui Trovi una funzione scritta in php per l'elevazione a potenza

  6. #6
    grazie, come si realizza il modulo?
    non nel senso di valore assoluto ma nel senso di:
    (sintassi c) a%b

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 © 2026 vBulletin Solutions, Inc. All rights reserved.