Ancora sull’elevazione a potenza

hand-truckA una certa ora (comunque troppo presto) mi accorgo che non capisco più quello che tento di fare, allora chiudo tutto e smetto. Poi capace che vado anche a dormire presto, come ieri. E mi capita di sognare che sono al Paradiso della Brugola che sto movimentando tweets con un hand-truck (sì, lo so che da noi non si chiamano così ma il sogno era quello). Sì lo so che non si usa un carrello per spostare i tweets (spostarli dove?) ma nel sogno era così. E il sogno è mio (quello) 😉
Mi sono svegliato con la convinzione che dovevo riprendere un argomento discusso su Facebook e del quale ho anche fatto un post: Sul calcolo di base elevato esponente.
Colpa anche di GLF, Gianluigi Filippelli, che l’altro giorno ha messo su Schema per affrontare il calcolo di un esponenziale.
Prima o poi ritorno sullo schema di GLF, ma intanto continuavo a chiedermi come si deve intendere il segno del numero da elevare a potenza.

Cioè quando scrivo: r = b ^ e cosa intendo davvero? b è negativo di suo o invece sto calcolando un’espressione che deve dare un risultato negativo?
Secondo me –potrei sbagliare, anzi aiuto!!!– nei casi normali (ahemmm…) mi viene da pensare che sia r = s * b ^ e dove s è il segno.
In queste condizioni ecco il programmino (elementare; non so se esista una funzione tipo sign(), la mia riga 6), pows.c:

#include <stdio.h>
#include <math.h>

double pows(double n, double e) {
    double s;
    s = ((n - fabs(n)) >= 0.0 ? 1.0 : -1.0);
    return(s * pow(fabs(n), e));
}

int main () {
    double bp = 2.0, bn = -2.0,
           e = 7.0 / 3.0;

    printf("%lf ^ %lf = %lf\n", bp, e, pows(bp, e));
    printf("%lf ^ %lf = %lf\n", bn, e, pows(bn, e));
    return(0);
}

pows

Niente più nan. Sensato? (Help!!!) :mrgreen:

pdbNota: Il Paradiso della Brugola esiste davvero; e io che mi pensavo che era una cosa di Jane e –prima ancora– di Matteo e invece no, c’è. Se siete di quelle parti provatelo. E dite che vi mandiamo noi, Jane, Matteo e me. Nèh! (come si dice “nèh” in milanese?) 😀

Annunci
Post a comment or leave a trackback: Trackback URL.

Commenti

  • glipari  On 8 marzo 2015 at 00:03

    forse non ho seguito la discussione con GLF, ma non ho capito bene perché levi il segno?

    • juhan  On 8 marzo 2015 at 07:19

      Discorso lungo. In breve: darebbe errore quando potrebbe essere solo un numero complesso e poi a volte capita che il segno è solo per l’espressione, così come viene scritta. Io ho fatto riferimento a questo caso.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: