Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    20

    permutazioni matrici

    ciao a tutti..ho un problema con la tesi e non riesco a risolvrlo.
    devo trovare tutte le possibili permutazioni della matrice identita'(3x3) e visualizzarle tutte..il linguaggipo che uso e' il c..chi puo' aiutarmi?ciao

  2. #2
    Utente di HTML.it L'avatar di MMarzia
    Registrato dal
    Mar 2001
    Messaggi
    1,781
    il linguaggio va specificato anche nel titolo.
    qui trovi il nostro regolamento
    io sono festosamente cicciottello :: e. cartman

    t'amo senza sapere come, nč quando nč da dove,
    t'amo direttamente senza problemi nč orgoglio:
    cosė ti amo perchč non so amare altrimenti

  3. #3
    Permutazioni di cosa?Delle righe, delle colonne,di tutti gli elementi?Spiegati meglio
    Il centro dell'attenzione non č sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    20
    devo permutare sia le righe che le colonne

  5. #5
    codice:
    #include <stdio.h>
    #define BYROWS 1
    #define BYCOLS 0
    
    void Perm(int** matrix,int i,int n,int permBy);
    void swap(int** matrix,int i,int j);
    int main()
    {
        int i,j;
        //cambiando solo questi puoi cambiare l'ordine delle matrici
        //identitā da permutare
        int nrows=3;
        int ncols=3;
        
        //allocazione dinamica matrice
        int** I = (int**)malloc(nrows * sizeof(int*));
        for(i=0;i<=nrows;i++)
        {   
            I[i]= (int*)malloc(ncols * sizeof(int));
        }
        
        //inizializzazione come matrice identitā
        for(i=0;i<nrows;i++)
                for(j=0;j<ncols;j++)
                    I[i][j] = (i == j) ? 1: 0;
        printf("Per righe:\n\n");
        Perm(I,0,nrows-1,BYROWS);
        
        printf("Per colonne:\n\n");
        Perm(I,0,nrows-1,BYCOLS);
        system("PAUSE");
    }
    
    void Perm(int** matrix,int i,int n,int permBy)
    {
        int j,k;
        
        if(i==n)
        {
            for(j=0;j<=n;j++)
            {   
            //basta stmapare le trasposte delle permutazioni
            //per riga per permutare per colonna
                    for(k=0;k<=n;k++)
                        if(permBy = BYROWS)
                           printf("%d",matrix[j][k]);
                        else
                           printf("%d",matrix[k][j]);
                    printf("\n");
            }
            printf("\n");
        }
        else
            for(j=i;j<=n;j++)
            {
                    swap(matrix,i,j);
                    Perm(matrix,i+1,n,permBy);
                    swap(matrix,i,j); 
            }
    }
    //scambia due righe
    void swap(int** matrix,int i,int j)
    {
        int* temp;
        temp = matrix[i];
        matrix[i] = matrix[j];
        matrix[j] = temp;
    }
    Toh dimmi se va bene,l'ho provato due o tre volte e mi sembra che funga
    Il centro dell'attenzione non č sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    20
    usando il dev c++ non me lo compila...magari provo a rivederlo e ppoi ti faccio sapere..intanto grazie

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    20
    anzi dimmi che compilatore hai che provo con quello

  8. #8
    Dec-C++ 4.9.8.0.E' strano....postami l'output esatto del compilatore,voglio vedere che errori ti da
    Il centro dell'attenzione non č sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    20
    da' i seguenti errori:

    16 C:\Documents and Settings\Palli'\Desktop\permutazioni\permut.cpp
    `malloc'
    16 C:\Documents and Settings\Palli'\Desktop\permutazioni\permut.cpp
    (Each
    31 C:\Documents and Settings\Palli'\Desktop\permutazioni\permut.cpp
    `system'

  10. #10
    Pedr la malloc metti in testa la file #include <stdio.h>,per la system sostituiscila con :
    codice:
    fflush(stdin);
    getchar();
    Fammi sapere
    Il centro dell'attenzione non č sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

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