Help quadrato magico

di il
38 risposte

38 Risposte - Pagina 3

  • Re: Help quadrato magico

    scambia(&v[i], &v[rand() % (i + 1)])
    cosa fa questa rand() al crescere di i?
  • Re: Help quadrato magico

    Dominik ha scritto:


    Per quanto riguarda il codice me lo sto vedendo riga per riga, ma prima volevo vedere se funzionava e mi da errore in questo blocco di istruzioni, in partucolare al terzo for.
    Quale errore ti riporta?

    enricoscarsissimo ha scritto:


    cosa fa questa rand() al crescere di i?
    Ipotizziamo di avere un vettore di 9 elementi

    1 2 3 4 5 6 7 8 9

    in pratica ad ogni iterazione l'elemento di posto i viene scambiato con l'elemento di posto pari ad un numero casuale compreso nell'intervallo [0,i].
  • Re: Help quadrato magico

    Nippolo ha scritto:


    Ho risolto errore mio, grazie.
    Se volessi aggiungere il calcolo della probabilità così come tu hai inserito il conteggio dei numeri dei quadrati magici, dove mi converrebbe inserire il calcolo della probabilità?
  • Re: Help quadrato magico

    Quali dati ti servono per calcolare la probabilità?
  • Re: Help quadrato magico

    Il conteggio e T in questo caso, ma ho risolto.
    Ho solo un dubbio all'inizio del codice, quando dichiari la variabile temp = *a...
    mi puoi spiegare meglio anche l'utilizzo di "*"?
  • Re: Help quadrato magico

    Se non hai studiato i puntatori e l'operatore di dereferenziazione puoi anche utilizzare la seguente versione della funzione mischia_quadrato():
    void mischia_quadrato(unsigned int m[N][N], unsigned int v[N * N], unsigned int n)
    {
        unsigned int i;
        unsigned int a;
        unsigned int temp;
        for(i = n * n - 1; i > 0; --i)
        {
            a = rand() % (i + 1);
            temp = v[i];
            v[i] = v[a];
            v[a] = temp;
        }
        for(i = 0; i < n; ++i)
        {
            for(unsigned int j = 0; j < n; ++j)
            {
                m[i][j] = v[i * n + j];
            }
        }
    }
  • Re: Help quadrato magico

    Nippolo ha scritto:


    Se non hai studiato i puntatori e l'operatore di dereferenziazione puoi anche utilizzare la seguente versione della funzione mischia_quadrato():
    void mischia_quadrato(unsigned int m[N][N], unsigned int v[N * N], unsigned int n)
    {
        unsigned int i;
        unsigned int a;
        unsigned int temp;
        for(i = n * n - 1; i > 0; --i)
        {
            a = rand() % (i + 1);
            temp = v[i];
            v[i] = v[a];
            v[a] = temp;
        }
        for(i = 0; i < n; ++i)
        {
            for(unsigned int j = 0; j < n; ++j)
            {
                m[i][j] = v[i * n + j];
            }
        }
    }
    Sei il Top!!
    ma comunque provvederò a studiarmi puntatori e operatore di dereferenziazione
  • Re: Help quadrato magico

    Ciao avrei la stessa traccia qualcuno può postare il codice completo cosi do un occhiata?
  • Re: Help quadrato magico

    Questo thread è di quasi due anni fa. Non si riesumano vecchi thread e non si richiede il codice pronto degli esercizi.

    Oltre al fatto che hai già un thread aperto sulla questione.
Devi accedere o registrarti per scrivere nel forum
38 risposte