Dom 18 Agosto, 07:11:49 - 2019

Autore Topic: Homework secondo canale  (Letto 7314 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline eafkuor

  • Direttore di Dipartimento
  • ***
  • Post: 1138
  • FeedBack: +173/-54
    • Mostra profilo
Re: Homework secondo canale
« Risposta #15 il: Dom 18 Ottobre, 02:54:49 - 2009 »
Questo è il mio:

Codice: [Seleziona]
import java.util.*;

public class ProvaSat {
       
   
    public static void main(String[] args) {
    SatSolver SatS=new SatSolver();
   
    boolean []soluzione;
    List a=new ArrayList<int[]>();;
    int [] t;
Random ran=new Random();

for(int y=0;y<10;y++){

a=new ArrayList<int[]>();
for(int u=0;u<2;u++){
int n=ran.nextInt(3)+1;
t=new int[n];
for(int j=0;j<n;j++){
t[j]=ran.nextInt(2)+1;
if(ran.nextBoolean())
t[j]=-t[j];
}
a.add(t);
}
soluzione=SatS.solve(2, a);

System.out.println("Soluzione di: ");
        stampa( (int[])a.get(0) );
        for(int i=1;i<a.size();i++){
        System.out.print(" ^ ");
        stampa( (int[])a.get(i) );
        }
       
        if(soluzione==null)System.out.println(soluzione);
        else for(boolean x: soluzione)
        System.out.print(x+" ");
       
        System.out.println();

}
a=new ArrayList<int[]>();
t=new int[2];
t[0]=-1;t[1]=-2;
a.add(t);
t=new int[1];
t[0]=1;
a.add(t);
t=new int[1];
t[0]=2;
a.add(t);

soluzione=SatS.solve(3, a);

System.out.println("Soluzione di: ");
        stampa( (int[])a.get(0) );
        for(int i=1;i<a.size();i++){
        System.out.print(" ^ ");
        stampa( (int[])a.get(i) );
        }
       
        if(soluzione==null)System.out.println(soluzione);
        else for(boolean x: soluzione)
        System.out.print(x+" ");
       
        System.out.println();
       
    }
   
    public static void stampa(int [] x){
   
    System.out.print("( ");
    if(x[0]>0)System.out.print("X"+x[0]);
    else System.out.print("¬X"+(-x[0]));
   
    for(int i=1;i<x.length;i++){
    if(x[i]>0)System.out.print(" , "+"X"+x[i]);
    else System.out.print(" , "+"¬X"+(-x[i]));
    }
    System.out.print(") ");
    }
   
}

Ma l'ho scritto proprio a random, si potrebbe migliorare di molto

Offline giorgiaus

  • Ricercatore
  • ****
  • Post: 295
  • FeedBack: +13/-8
    • Mostra profilo
Re: Homework secondo canale
« Risposta #16 il: Dom 18 Ottobre, 10:50:04 - 2009 »
raga corregetemi se sbaglio il tutor aveva detto che n il numero di letterali che possono essere presenti nelle espressione e sempre uguale a 3 per i test che faceva lui

Offline Seril

  • Direttore di Dipartimento
  • ***
  • Post: 2729
  • FeedBack: +263/-467
    • Mostra profilo
Re: Homework secondo canale
« Risposta #17 il: Dom 18 Ottobre, 12:57:14 - 2009 »
basta modificare leggermente il main!!! cmq il mio funziona per qualsiasi n  :sisi:

Offline andrea89

  • Author
  • Professore Ordinario
  • **
  • Post: 733
  • FeedBack: +76/-17
    • Mostra profilo
Re: Homework secondo canale
« Risposta #18 il: Dom 18 Ottobre, 18:33:51 - 2009 »
ragazzi ma se il file alla fin fine è un contenitore di metodi,tutto ciò che serve al test degli stessi starà nel main,a cosa serve il costruttore che viene richiesto nella specifica??
ll computer non è una macchina intelligente che aiuta le persone
stupide, anzi è una macchina stupida che funziona solo nelle mani delle persone intelligenti (Umberto Eco).

Offline edenroz

  • Studente di Dottorato
  • ***
  • Post: 138
  • FeedBack: +11/-7
    • Mostra profilo
Re: Homework secondo canale
« Risposta #19 il: Lun 19 Ottobre, 04:35:05 - 2009 »
gia me lo chiedevo anche io.....

in ogni caso....ho realizzato un qualcosa che funzioni :)

solo un paio di domande:

(x1 , not-x1) è una clausola non ammessa?

devo lanciare un eccezione?

non riesco proprio a capire che tipo di controlli fare sull'input....alla fine sono liste di array di int no?

che ci puo essere di sbagliato?

salut
« Ultima modifica: Lun 19 Ottobre, 04:50:20 - 2009 da edenroz »

Offline Seril

  • Direttore di Dipartimento
  • ***
  • Post: 2729
  • FeedBack: +263/-467
    • Mostra profilo
Re: Homework secondo canale
« Risposta #20 il: Lun 19 Ottobre, 15:25:23 - 2009 »
gia me lo chiedevo anche io.....

in ogni caso....ho realizzato un qualcosa che funzioni :)

solo un paio di domande:

(x1 , not-x1) è una clausola non ammessa?

devo lanciare un eccezione?

non riesco proprio a capire che tipo di controlli fare sull'input....alla fine sono liste di array di int no?

che ci puo essere di sbagliato?

salut
allora rispondo a qualcosa.. (x1 , not-x1) deve ritornare null perchè non c'è una soluzione che soddisfa quelle clausole. per quanto riguarda l'eccezioni oggi il tudor  ha detto che non c'è bisogno di metterle perchè gli input del suo main sono tutticorretti!. se ti serve un main puoi sfruttare quello postato da eafkuor

Offline HolyElfGirl

  • Studente
  • *
  • Post: 42
  • FeedBack: +0/-1
    • Mostra profilo
Re: Homework secondo canale
« Risposta #21 il: Lun 19 Ottobre, 19:14:54 - 2009 »
Alla lista di eccezioni (che avete postato nel topic sull'esercitazione) proporrei di aggiungere anche una che si assicuri che l'int n sia coerente con il numero di letterali contenuti nelle clausole. 
Correggetemi se sto dicendo una cavolata >.<

Offline Seril

  • Direttore di Dipartimento
  • ***
  • Post: 2729
  • FeedBack: +263/-467
    • Mostra profilo
Re: Homework secondo canale
« Risposta #22 il: Lun 19 Ottobre, 20:35:26 - 2009 »
Alla lista di eccezioni (che avete postato nel topic sull'esercitazione) proporrei di aggiungere anche una che si assicuri che l'int n sia coerente con il numero di letterali contenuti nelle clausole. 
Correggetemi se sto dicendo una cavolata >.<
non servono le eccezioni ce lo ha detto il tudor oggi a lezione  :sisi:

Offline Jok_T-RooNz

  • Ricercatore
  • ****
  • Post: 288
  • FeedBack: +5/-28
    • Mostra profilo
Re: Homework secondo canale
« Risposta #23 il: Mar 20 Ottobre, 10:50:16 - 2009 »
L'avete fatto ricorsivo?
Perchè iterativo mi sta uscendo una roba con dei costi simili a O di infinito LOL

Offline roronoa

  • Studente
  • *
  • Post: 6
  • FeedBack: +0/-0
    • Mostra profilo
Re: Homework secondo canale
« Risposta #24 il: Mar 20 Ottobre, 11:23:52 - 2009 »
io non l'ho fatto ricorsivo... non c'era niente che lo specificava

Offline Seril

  • Direttore di Dipartimento
  • ***
  • Post: 2729
  • FeedBack: +263/-467
    • Mostra profilo
Re: Homework secondo canale
« Risposta #25 il: Mar 20 Ottobre, 11:26:37 - 2009 »
può essere fatto come volete non ci sono vincoli!!

Offline jigen88

  • Studente di Dottorato
  • ***
  • Post: 231
  • FeedBack: +11/-4
    • Mostra profilo
Re: Homework secondo canale
« Risposta #26 il: Mar 20 Ottobre, 11:27:36 - 2009 »
Ragazzi scusate ma dove posso trovare il testo di questo Homework?....qualcuno di buona volontà potrebbe scannerizzarmelo per favore??

Offline Seril

  • Direttore di Dipartimento
  • ***
  • Post: 2729
  • FeedBack: +263/-467
    • Mostra profilo
Re: Homework secondo canale
« Risposta #27 il: Mar 20 Ottobre, 11:47:09 - 2009 »
i testi vengono dati solamenti al laboratorio. non vengono messi online. se si vogliono fare si è costretti ad andare al laboratorio. li consegna il tutot

Offline Jaikappa

  • Ricercatore
  • ****
  • Post: 389
  • FeedBack: +54/-1
    • Mostra profilo
    • Il mio paese
Re: Homework secondo canale
« Risposta #28 il: Mer 21 Ottobre, 12:38:44 - 2009 »
Citazione
1) Sat enumerativo 
Canale A-K        29 ottobre 2009 ore 14.00
5 novembre 2009 ore 14.00    

Canale L-Z    26 ottobre 2009 ore 14.00
2 novembre 2009 ore 14.00

Sono state prorogate le date di consegna!!!!
http://www.dis.uniroma1.it/~fiii/laboratorio.html

Offline Tom89

  • Professore Ordinario
  • **
  • Post: 703
  • FeedBack: +145/-79
    • Mostra profilo
Re: Homework secondo canale
« Risposta #29 il: Mer 21 Ottobre, 13:15:50 - 2009 »
Addirittura! 1 Mese mi sembra un pò tanto per sta cosa  :asd: