Buon fine giornata,
Ho da creare un programma ed ho bisogno di usare le stringhe binarie. Potreste spiegarmele facendo degli esempi (anche in java--)?
Grazie per l'attenzione.
Buon fine giornata,
Ho da creare un programma ed ho bisogno di usare le stringhe binarie. Potreste spiegarmele facendo degli esempi (anche in java--)?
Grazie per l'attenzione.
Ti scrivo il testo:
Facendo uso del metodo di generazione delle stringhe binarie (e, quindi, dei sottoinsiemi di un dato insieme), scrivere un metofo, chiamatao strangePartition, che, dato in input un array a di numeri interi positivi, restituisca il valore true se e solo se esiste un sottoinsieme X degli elementi di a la cui somma sia un multiplo di 10 e tale che la somma degli elementi di a non in X sia dispari.
Riferito a quell'array in argomento al metodo, se intendi per "sottoinsieme" una qualunque "combinazione" dei suoi elementi, allora sì, c'entra il concetto di numerazione in base 2 (binaria). Ma riguardo le stringhe, nel senso proprio di java.lang.String credo che possa anche non c'entrare niente.
Se hai un array es. { 10, 1, 5, 19 } allora fai le sue combinazioni (qui sotto in rosso):
10, 1, 5, 19
10, 1, 5, 19
10, 1, 5, 19
10, 1, 5, 19
10, 1, 5, 19 (ecco! il sottoinsieme X è 1,19 somma=20 multiplo di 10 e 10+5=15 dispari ---> quindi true)
......
Questo intendi?
Ultima modifica di andbin; 17-02-2018 a 11:51
Ciao Steve Jobs, mi sa che mercoled� si fa l esame insieme
No allora anch' io sto impazzendo con questo esercizio... sostanzialmente il metodo di generazione Delle stringhe binarie a cui si riferisce il testo � questo :
void generaBinarie ( int [] a , int b ) {
if ( b ==0) {
stampaArray ( a );
} else {
a [b -1] = 0;
generaBinarie ( a , b -1 );
a [b -1] = 1;
generaBinarie ( a , b -1 );
}
}
Gli passi come parametri l array di cui vuoi conoscere i sottoinsiemi e la lunghezza dell array in esame.
Lui ti stampa ricorsivamente una lista di array composti di 0 e 1 che indicano rispettivamente che l elemento in quella posizione non � presente o che � presente.
Per esempio:
Int[] a = {1,2,3,4}
Una Delle tante "stringhe binarie" stampate sar� per esempio:
1 0 1 0
Che indica il sottoinsieme:
{1,3}
Ora io ho creato un metodo chiamato "verifica" che converte le "stringhe" nei rispettivi sottoinsiemi e restituisce true se vengono verificati i due requisiti, cio� che la somma degli elementi del sottoinsieme sia un multiplo di 10 e che la somma dei restanti elementi sia dispari........
Il mio problema � che essendo il metodo di generazione delle stringhe ricorsivo, il metodo "verifica" lo chiamo al posto del metodo " stampaArray" ( o successivamente a quello) e non riesco trovare un modo per dire al "main" che � stato trovato un true... Perch� di true ne basta uno solo, e non importa sapere quale sotto insieme �, ma se modifico il metodo generaBinarie in modo che restituisca un boolean, mi restituisce la verifica solo dell' ultimo sottoinsieme, se invece gli passo come parametro una variabile boolean o una variabile intera contatore ogni volta che ricorsivamente "risale" alla chiamata precedente mi si resetta la variabile...in sostanza non mi riesce far uscire quel true da "generaBinarie" ( a meno che non risulti true l ultimo sottoinsieme restituito ).
PS. scusate l' identazione del metodo, � che sto scrivendo dal telefono quindi � un po' difficoltoso... magari quando torno a casa sistemo