Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    66

    [c++] k-quadrati latini

    Buongiorno a tutti. devo creare un programma che unisca due k-quadrati latini, mi spiego meglio. un k-quadrato latini di ordine n è una matrice n*n in cui in ogni cella vi sono esattamente k elementi e tale che, in ogni rico ed ogni colonna ogni elemento compaia esattamente k volte. Nel mio programma devo far inserire due k-quadrati latini con k diverso, verificare che effettivamente siano dei k quadrati latini e poi unirli, ovvero creare una matrice n*n in cui in ogni cella trovo l'unione degli elementi prensenti nelle celle corrispondenti dei quadrati inseriti come input.
    Avevo pensato di creare una matrice i cui elementi sono vettori o multinsiemi. è possibile fare una cosa del genere? avevo abbozzato questo sino ad ora:
    codice:
    #include <stdio.h>
    #include <math.h>
    #include "boost/multi_array.hpp"
    #include <iostream>
    #include "boost/array.hpp"
    typedef boost::multi_array<double, 2> two_d_array_type;
    int main()
    {
        int k,n,i,j;
        printf("Inserisci l'indice'");
        scanf("%d",&k);
        printf("Inserisci l'ordine''");
        scanf("%d",&n);
        two_d_array_type A(boost::extents[n][n]);
        for (i=0; i<n; i++){
            for (j=0; j<n; j++){
                printf( "Inserisci l'elemento di posto' Element[%d][%d]: ", i, j);
                scanf("%d",&A[i][j]);
            }
        }
        for (i=0;i<n;i++){
            for(j=0;j<n;j++)
            {
            printf("%d ", A[i][j]);
            }
            printf("\n");
        }
        
     
     
        return(0);
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    66
    [QUOTE=sangi89;25366586]Buongiorno a tutti. devo creare un programma che unisca due k-quadrati latini, mi spiego meglio. un k-quadrato latini di ordine n è una matrice n*n in cui in ogni cella vi sono esattamente k elementi e tale che, in ogni rico ed ogni colonna ogni elemento compaia esattamente k volte. Nel mio programma devo far inserire due k-quadrati latini con k diverso, verificare che effettivamente siano dei k quadrati latini e poi unirli, ovvero creare una matrice n*n in cui in ogni cella trovo l'unione degli elementi prensenti nelle celle corrispondenti dei quadrati inseriti come input.
    Avevo pensato di creare una matrice i cui elementi sono vettori o multinsiemi. è possibile fare una cosa del genere? avevo abbozzato questo sino ad ora:
    codice:
    #include <stdio.h>
    #include <math.h>
    #include "boost/multi_array.hpp"
    #include <iostream>
    #include "boost/array.hpp"
    typedef boost::multi_array<double, 3> two_d_array_type;
    int main()
    {
        int k,n,i,j,t;
        printf("Inserisci l'indice'");
        scanf("%d",&k);
        printf("Inserisci l'ordine''");
        scanf("%d",&n);
        two_d_array_type A(boost::extents[n][n][k]);
        for (i=0; i<n; i++){
            for (j=0; j<n; j++){
                    for(t=0; t<k; t++){
                printf( "Inserisci l'elemento di posto' [%d][%d][%d]: ", i, j, t);
                scanf("%d",&A[i][j][t]);
                         while ( (A[i][j][t]>1)|| (A[i][j][t]<0) ){ /*controlla che il valore sia compreso tra 0 ed n*/
                         printf("Valore errato. Inserisci nuovamente l'elemento di posto' [%d][%d][%d]: ", i, j, t);
                          scanf("%d", &A[i][j][t]); /*acquisisci nuovamente il valore*/
                           }
                    }
            }
    
        }
       for (i=0;i<n;i++){
            for(j=0;j<n;j++){
        printf("|");            
            for(t=0; t<k; t++)
    
            {
            printf("%d ", A[i][j][t]);
            
            } //printf("|");
      
        }      printf("| \n"); 
     
        }
        
     
     
        return(0);
    }
    Ultima modifica di sangi89; 24-04-2016 a 15:03

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    66
    ho risolto, grazie ugualmente

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.