Newsgroup: it.scienza.informatica
Titolo: Esame Reti logiche

Siamo due studenti della facolta' di Ingegneria di Roma "La Sapienza",
alcune nozioni di
base ci sono poco chiare, saremmo molto grati a chi ci volesse aiutare.
Due domande per cominciare:
1) Cosa sono i codici ciclici ? In particolare cosa si intende per routare
una parola di codice?
2) Come si esegue una divisione "modulo 2" ? ovvero come si calcola il resto
di una divisione
modulo 2.
Grazie per ogni risposta.

Fabio wrote:

  Ciao, sono una studentessa di matematica dell'universita' di
Romatre e rispondo alla tua seconda domanda. Spero di essere
chiara perche' non e' molto facile trovare le parole giuste per
spiegarlo bene qui.
Allora, incomincio col dirti che una divisione "modulo 2" puo'
solo darti come risultato o 0 o 1. Tutti i nuimeri pari ti daranno
come risultato 0, mentre quelli dispari 1.  Sostanzialmente devi
eseguire delle sottrazioni :  sottrai dal tuo numero tante volte 2
fino a che non ottieni o 0 o 1. Facciamo degli esempi : 2 modulo2
fa 0, 7 modulo 2 fa 1, 170 modulo 2 fa 0, 141 modulo 2 fa 1, e
ritorna quello che ti ho detto prima sui numeri pari e dispari.
Detto molto meglio,  devi guardare il resto, se dividi per due
qualsiasi numero ottieni sempre come resto o 0 o 1, quindi
l' operazione modulo ti dice di prendere come risultato il resto.
E questo equivale per ogni tipo di modulo che vorrai eseguire.
6 modulo 2 fa 0, prendo 6 , lo divido per 2 e ne prendo il resto,
quello e' il mio risultato. 6 modulo 3 fa 0, 13 modulo 5 fa 3 e
cosi' via. Per il modulo 3 ottengo  come risultati 0,1,2,3.Per 5
0,1,2,3,4. Si tratta di una nuova numerazione e  si parla anche di spazi
vettoriali, ma non voglio annoiarti piu' di tanto.
Spero di averti dato almeno l'idea.
Un saluto
                                            Serena

di una divisione modulo 2.
Nel mondo dei computer (binario) è facilissimo: prendi il bit meno significativo
del numero trasformato in binario! ;-)
Bye,
  Dario
Fidonet 2:331/101.25
ICQ# 11871099

modulo 2.
Nelle reti combinatorie questa operazione è resa molto semplice proprio
dalla natura binaria delle cifre rappresentate nei registri a scorrimento:
Dividendo per esempio il numero 453618 (base dieci) per dieci il resto sarà
8, proprio l'ultima cifra. Analogamente il resto di un qualsiasi numero
binario, effettuando una divisione per due, non sarà altro che il valore
dell'ultimo bit (LSB).
Alessio

modulo 2.
Però forse avremmo fatto meglio a chiarire alcuni concetti.
Il calcolo del resto della divisione "modulo 2" serve per il calcolo dei bit
(FCS) da aggiungere a un messaggio binario per effettuare il CRC.
Un esempio che abbiamo trovato sul libro:
(nota i numeri sono in binario)
101000  diviso "modulo 2" con 1101 da come resto 110
che sommato "modulo2" con 101000 da 101110
che diviso 1101 da come resto 0
crediamo che l'esempio sia errato ma comunque il risultatato, in generale
dovrebbe avere
piu' di una cifra.
Anche noi credevamo che la divisione "modulo 2" dovesse dare come risultato
o "0" o "1"
ma evidentemente per divisione "modulo 2" si intende un'altra cosa.
le cose sono piuttosto confuse,lo so sappiamo, una piccola considerazione
per chiarire meglio il concetto:
somma
( in binario)
1011+0101 =10000
(in decimale)
11+5=16
somma "modulo2"  (in binario)
(in binario)
1011 + 0101 = 1110
(in decimale non ha molto senso)
11+5= 14
speriamo che qualcuno sappia trovare la soluzione di questo problema,
speriamo di non avervi confuso troppo le idee.

11+5= 14
A parte il fatto che le operazioni fatte in qualsiasi base devono dare lo stesso
risultato, mi pare che qui il termine sia usato proprio a sproposito.
Non č che per caso ti riferisci al "complemento a 2"? _In questo caso_ i conti
tornerebbero se si usasse una parola di 4 bit.


una parola di codice?
I codici blocco lineari hanno la proprieta' di rilevare e correggere gli
errori. Possono essere corretti errori a seconda della distanza minima di
Hanning del codice usato:
Dmin >= 2 * (num max errori correggibili) + 1
Un esempio di codice blocco lineare è:
000 001 010 011 100 101 110 111
dove Dmin = 1 perché le parole del codice distano tra loro un solo bit
(binit).
I codici ciclici sono particolari codici blocco lineari formati dalle parole
del codice e da tutti i possibili shift rotativi dei bit. Per esempio:
dati    ottengo
000     non ruota
011     ruota in 101 110
Buona parte dei codici possono essere visti come ciclici. Il difficile è
trovare un codice che rispetti le richieste di avere messaggi (parole del
messaggio) che diano correzione di errore se richiesta, sia biunivoca, e con
tot bit informativi ed il resto codice.
Le cose cominciano ad essere incasinate oltre questo. Per approfondimenti,
all'univ. di Firenze, queste cose venivano trattate nel corso di Teoria
dell'informazione.
In c... alla balena
Mauro

101000  diviso "modulo 2" con 1101 da come resto 110
finalmente credo di aver capito la risposta del professore alla domanda e
stata che
la divisione si esegue cosi:
1010000 | 1101
  1101      |--------
  -------      | 111
  10010    |
    1101    |
    -------    |
    11110  |
      1101 |
      -------
         011
quindi l'esempio corretto era
1010000:1101=111 (resto 011)
La dicitura "modulo 2" intende dire che le sottrazioni della divisione
(eseguita in binario)
sono eseguite "modulo 2" ovvero effettuando uno xor tra minuendo e
sottraendo.
purtroppo non sono completamente sicuro di ciò perchè dato il
sovraffollamento delle
università italiane ho ricevuto una risposta lapidaria e molto sintetica.
Eravamo circa 30 persone e ognuno aveva una o più domande da porre al
professore e
c'erana solo 1 ora e mezza circa di tempo. (ovvero 3 minuti a persona, di
cui io ho usufruito di circa 30 secondi con la promessa di riprendere
l'argomento un'altra volta).

11+5= 14
provate a vedere se ci sono affinita' con la congruenza mod n
Def: una coppia di numeri a,b e' congrua modulo n se
n|(a-b) 
 cioe' se n e' divisore (simbolo | ) di (a-b) , non si parla di somme
o sotrazioni mod n, ma da cosa nasce cosa .... credo che la radice
dell'operazione stia in quella definizione.
Mi spiace di non potervi aiutare di piu', ma ho sviluppato una certa
allergia nei confronti dell'algebra... :)
ciao,
 Alfa.