Esiste un nome per il numero di valori che una variabile può assumere? [chiuso]

5

Ad esempio, un bit o un booleano possono essere 0 o 1, quindi il numero 2 è associato ad esso. Allo stesso modo, per un byte che è 8 bit, il numero massimo di assegnazioni differenti sarebbe 2 ^ 8.

C'è un nome per questo numero?

Quando passiamo tutto attraverso il nostro sistema che ha ECMAScript, Java e MySQL, allora un booleano non ha solo due possibili assegnazioni. Ad esempio, un falso booleano viene salvato come 0 e il valore in box potrebbe essere nullo, quindi un booleano può ottenere all'improvviso true, false, 0, 1, null o anche undefined o <missing> .

Penso che potrebbe risultare problematico nei test per garantire che i valori non siano incoerenti. Ad esempio, un valore boolean locked potrebbe diventare null e quindi quando uno script o un modello di layout lo valuta, valuterà a false da qualche parte se il valore reale era null e problemi simili.

Quindi perché non affermiamo sempre che un booleano ha lo stesso numero di valori possibili (2 valori) e allo stesso modo di altri tipi?

C'è un termine matematico chiamato " arity " che è qualcosa di simile ma non esattamente, e anche la statistica e la teoria della probabilità ha il concetto di " spazio eventi " che sarebbe quasi esattamente ciò che intendo. Ad esempio, lo spazio eventi per un booleano sarebbe il set {0,1} che ha cardinalità 2 e che la cardinalità non viene preservata nel sistema, specialmente quando i dati vengono passati come poliglotti e / o serializzati (json, jsonp, xml, YAML).

    
posta Niklas Rosencrantz 22.03.2014 - 13:42
fonte

2 risposte

6

La chiamerei cardinalità (e in effetti l'ho usata in quel senso). È strettamente la cardinalità dell'insieme di tutti i valori che una variabile può assumere.

Modifica: ad esempio, un numero intero a 16 bit può richiedere esattamente 65536 valori. La cardinalità dell'insieme di tutti i valori che l'intero può assumere è 655536.

Una volta che inizi a considerare variabili che hanno un intervallo di valori validi e anche un intervallo di valori non validi (come un booleano con un valore bitwise di 17), devi estendere il concetto in qualche modo, ma puoi ancora descriverli valori con notazione impostata e il concetto di cardinalità si applica ancora.

Modifica: Sì, questo è l'insieme matematico, non la programmazione impostata. Se dovessi applicare il concetto al carattere C # e derivare il tipo short ?, questo non avrebbe 65537 valori, rappresentati dall'unione del set di valori 65536 menzionati in precedenza e di un valore aggiuntivo, null.

    
risposta data 22.03.2014 - 14:38
fonte
4

Se ti iscrivi all'interpretazione "tipi come insieme di valori" della teoria dei tipi, la cardinalità è in effetti un buon nome.

Quindi, la cardinalità di bool sarebbe 2, la cardinalità di byte sarebbe 256, e la cardinalità di String sarebbe & aleph; 0 .

    
risposta data 22.03.2014 - 14:38
fonte

Leggi altre domande sui tag