Se un algoritmo "uno / o" è "Booleano", cos'è un algoritmo "zero, uno o più"? [chiuso]

4

Nella programmazione come si chiama una scelta che non è booleana?

es. una condizione booleana è una possibilità vero / falso, o.

Come si chiama una condizione con una o più possibilità? E, c'è qualche differenza se la condizione è zero o più rispetto a uno o più?

Grazie!

- EDIT -

Per aggiungere un po 'di chiarezza:

In particolare, sto attraversando un periodo difficile quando descrivo determinati tipi di algoritmi ai non programmatori. Sono un programmatore hobbista quindi mi manca molto del vocabolario che viene fornito con una laurea in informatica.

Se presento un utente con una scelta "o-o", trovo che gli utenti capiscano cosa intendo se chiamo una scelta "booleana", anche se ha più di due possibilità.

Ad esempio: "Scegli un colore: rosso, giallo, verde o blu."

Se ho qualcosa che è una "una o più" scelta, non so come chiamarla.

Ad esempio: "Seleziona tutti i colori che ti piacciono: rosso, giallo, verde, blu."

In che modo (programmatori esperti) si riferiscono a questi tipi di scelte quando ne parli?

- SECOND EDIT -

Come è stato sottolineato nei commenti non dovrei nemmeno dire "booleano", dovrei dire "binario". Questo ha perfettamente senso ...

Quindi, esiste una cosa come "polynary"?

    
posta Andrew 19.07.2011 - 23:48
fonte

9 risposte

1

Specifically I'm having a hard time when describing certain types of algorithms to non-programmers.

Non sono sicuro che i termini informatici ti aiuteranno in questo modo:)

For example: "Pick a color: red, yellow, green, or blue."

Il profano lo definirebbe una "domanda a scelta multipla". Come quelle domande scangrade in cui inserisci la risposta con una matita numero 2.

For example: "Select any colors that you like: red, yellow, green, blue."

Chiamerei quella "domanda a selezione multipla". La scelta implica una singola decisione, ma la selezione generalmente consente di includere più oggetti.

    
risposta data 20.07.2011 - 01:47
fonte
4

Quando hai la possibilità di fare riferimento a uno o più valori, puoi chiamare queste opzioni .

Un'implementazione di questo, ad es. C # utilizza un enum di bandi .

[Flags]
enum SelectedColor
{
    None, Red, Yellow, Green, Blue
}

SelectedColor colors = SelectedColor.Red | SelectedColor.Green;

Questo usa un tipo di valore sottostante dove ogni bit del valore rappresenta una possibile opzione. Per esempio. quando il tipo di valore sottostante è un Int32, puoi specificare 32 diverse opzioni possibili.

0000 = None
0001 = Red
0010 = Yellow
0100 = Green
...
    
risposta data 20.07.2011 - 00:07
fonte
3

Normalmente viene chiamato "switch" - come questo in C #

Ti consente di scegliere tra molte possibilità. Potresti anche scriverne uno che avesse solo due scelte come una dichiarazione if.

int caseSwitch = 1;
switch (caseSwitch)
{
    case 1:
        Console.WriteLine("Case 1");
        break;
    case 2:
        Console.WriteLine("Case 2");
        break;
    default:
        Console.WriteLine("Default case");
        break;
}
    
risposta data 19.07.2011 - 23:52
fonte
3

If I have something that's a "one or more" choice I don't know what to call that.

Nel sistema di gestione dei contenuti che abbiamo dove lavoro questo sarebbe chiamato una "lista di prelievo" per selezionare i valori in cui se si voleva vedere il valore grezzo si tratta di un elenco delimitato da pipe di un GUID. "Sets" sarebbe il costrutto matematico che sembra utilizzare qui, in quanto si potrebbe eseguire un controllo di MyColors.Count > 0 per un controllo booleano se vi sono alcuni elementi nella variabile MyColors . Esistono anche metodi come Contains per verificare se un set, spesso chiamato raccolta o lista che può essere implementato usando matrici o liste collegate, ha un membro specifico o no in alcune lingue.

Spero che questo sia ciò che intendi. Valutazione di cortocircuito mi viene in mente come un'area in cui si può avere una situazione di "Non mi interessa" in alcuni casi.

    
risposta data 20.07.2011 - 00:25
fonte
2

Per definizione, un booleano può essere solo vero o falso, 1 o 0. Non c'è nulla di confuso a riguardo. In termini di spiegare ad un utente la tua situazione: "Scegli un colore: rosso, giallo, verde o blu". È semplicemente una scelta da un insieme di colori.

Contrasta con: "Seleziona tutti i colori che ti piacciono: rosso, giallo, verde, blu." Si dice semplicemente che sono scelte multiple da un insieme di colori.

Nessuna di queste situazioni è un'opzione equivalente booleana. Puoi obiettare che la decisione di effettuare una scelta è, di per sé, un'operazione booleana: puoi scegliere un valore o non farlo.

Non sono del tutto sicuro se questo è ciò che stai cercando di ottenere, ma suppongo che sia così che vedo i booleani.

    
risposta data 20.07.2011 - 00:37
fonte
1

Ti stai forse riferendo a un Campo bit ? È generalmente rappresentato come Enumerazione con valori di posizione binari fissi, che possono essere utilizzati per specificare 0 ... n combinazioni di valori .

    
risposta data 20.07.2011 - 00:09
fonte
1

Quando parli di cosa un'operazione restituisce , distinguerei tra qui tra scalare e set-saggio tipi di ritorno.

Quando si parla invece di ciò che un'operazione richiede -che è, i suoi parametri-I'd caratterizzano la sua arità come monadico (esattamente uno ), diadico (esattamente due) o poliarco (qualsiasi numero non negativo, come di consueto con un conteggio). In alternativa, si potrebbe usare unario , binario e n-ary , rispettivamente.

    
risposta data 20.07.2011 - 06:38
fonte
0

In Java avresti un Set di valori enum. Sotto il cofano usa una mappa di bit.

enum Colour { Red, Blue, Yellow, Green }

Set<Colour> colours = EnumSet.of(Colour.Blue, Colour.Green);

colours.add(Colours.Red);
if (colours.contains(Colour.Yellow)) {
    colours.remove(Colour.Blue);
}
System.out.println(colours);

stampe

[Red, Blue, Green]
    
risposta data 20.07.2011 - 01:00
fonte
0

Quindi, esiste una cosa come "polynary"?

Vorrei usare la parola " discrete ", come in "un insieme di opzioni discrete".

    
risposta data 20.07.2011 - 10:24
fonte

Leggi altre domande sui tag