Piccolo trip informatico.

23 risposte [Ultimo messaggio]
Ritratto di Frag91
Frag91
(Monster)
Offline
Monster
Iscritto: 12/12/2006
Messaggi: 273

Salve, studiando per l'esame di logica della programmazione, ho fatto un breve trip mentale:

Se voi stesse parlando a un elaboratore, che per sua natura è limitato a concetti e numeri finiti, come gli spieghereste il concetto di infinito? Con che esempi?

Io uno ce l'ho, sono curioso di sentire i vostri..

Ritratto di Andrea85
Andrea85
(Collaboratore)
Offline
Collaboratore
Iscritto: 22/12/2008
Messaggi: 801

Ma questa è una domanda filosofica Tongue
Ci sono i cicli infiniti

Ritratto di Frag91
Frag91
(Monster)
Offline
Monster
Iscritto: 12/12/2006
Messaggi: 273

Di più, di più! Mi devi dire quello che diresti alla macchina stessa!

Ritratto di Duetto
Duetto
(Junior)
Offline
Junior
Iscritto: 20/09/2010
Messaggi: 24

Uhm...

O con la definizione, cioè tipo, un numero è infinito se ogni numero che riesci a pensare è più piccolo del primo, oppure gli direi di prendere un numero n, continuare a farlo diventare più piccolo, tipo dividendolo per 2 ogni passaggio, e calcolarsi 1/n. Questo tende ad infinito.

Però non so se è questo che intendi...

Ritratto di mae89
mae89
(Geek)
Offline
Geek
Iscritto: 29/11/2006
Messaggi: 140

anche io opterei per il ciclo infinito ponendo una condizione che non si avrà mai

...] LinuxMX [...
Sito riguardante Linux, Programmazione ed Elettronica!!!
E da oggi anche Video Tutorial

Ritratto di filotux
filotux
(Monster)
Offline
Monster
Iscritto: 26/11/2006
Messaggi: 307

Frag91 ha scritto:


Se voi stesse parlando a un elaboratore, che per sua natura è limitato a concetti e numeri finiti, come gli spieghereste il concetto di infinito? Con che esempi?

Dovresti prima definire cosa intendi per "elaboratore": il modello teorico sul quale si basa tutta la Scienza dell'Informazione e' la macchina di Turing, che e' un elaboratore dotato di memoria infinita. Ovviamente e' un modello teorico, ma una concretizzazione e' possibile semplicemente limitandone la memoria. Ed anche con la memoria limitata, e quindi praticamente analogo a qualsiasi calcolatore esistente, e' perfettamente in grado di gestire elaborazioni con numeri non limitati superiormente.

Ad esempio e' possibile sommare (ma non moltiplicare) due numeri il cui numero di cifre non e' fissato a priori e le cui dimensioni superano la memoria disponibile.

Dovresti poi spiegare cosa significa "spiegare ad un elaboratore"....

Comunque, a parte fornirgli una banale definizione di infinito presa da un qualsiasi dizionario (alla fine non e' che una parola, trovo molto piu' difficile parlare di religione che di infinito) la domanda che gli farei io e' la seguente:

"come spiegheresti ad un altro elaboratore il concetto di infinito?"

La sua risposta e' anche la risposta alla tua domanda.

Ciao

Pietro

Debian Lenny on BeagleBoard

Ritratto di doc_pluto
doc_pluto
(Guru)
Offline
Guru
Iscritto: 08/02/2007
Messaggi: 871

filotux ha scritto:

Comunque, a parte fornirgli una banale definizione di infinito presa da un qualsiasi dizionario (alla fine non e' che una parola, trovo molto piu' difficile parlare di religione che di infinito) la domanda che gli farei io e' la seguente:

"come spiegheresti ad un altro elaboratore il concetto di infinito?"

La sua risposta e' anche la risposta alla tua domanda.

.senza parole.

Hardware: MB:P5E3_Deluxe - CPU:Core2Duo E8400 3.0GHz - RAM:Kingstone_2Gb_DDR3 - Video:GeForce9600GT/PCI/SSE2 - HD: 2x WDCaviarBlue 1TB
--------------------------------
Software: SO:openSuSE 12.1 - ARCH:64bit - DE:Gnome3 - DriverVideo:Ufficiali Nvidia

Ritratto di paolo
paolo
(Webmaster)
Offline
Webmaster
Iscritto: 28/12/2004
Messaggi: 131

In 7 anni di ILDN, voto questa discussione come la più creativa mai avviata in tutti i Forum Applause

Paolo Mainardi - Founder of ILDN

Ritratto di ferdybassi
ferdybassi
(Guru)
Offline
Guru
Iscritto: 11/09/2005
Messaggi: 2668

filotux ha scritto:


la domanda che gli farei io e' la seguente:
"come spiegheresti ad un altro elaboratore il concetto di infinito?"
La sua risposta e' anche la risposta alla tua domanda.


Eh no, se vogliamo stare al'interno dei parametri posti dalla domanda, con la tua risposta cadi in un loop senza uscita. Come puoi chiedere a una macchina di spiegare a una macchina una cosa che tu stesso devi spiegare alla macchina?
Ergo, la macchina risponderebbe: "e che ne so io di che cos'è l'infinito... Sei tu che devi spiegarmelo".

Questo, come detto, a patto di voler restare all'interno dei parametri posti dalla domanda, che però a mio parere sono nettamente sbagliati.

Per discutere correttamente bisogna innanzitutto definire il linguaggio con cui vogliamo parlare alla macchina: con cosa comunichiamo? A gesti? A rutti? Con l'assembler? Con il basic? Con il turbopascal? Con il C++? Con il Python?

NOTA: d'ora in poi scriverò "parliamo alle macchine" o cose del genere, ma intenderò "utilizziamo un linguaggio di programmazione che riesca a far fare alla macchina quello che ci occorre". Prendete quindi il termine con le pinze, non sono un fanatico che crede in Terminator Wink

Questa questione (quella della scelta del linguaggio) è fondamentale, perchè in base al linguaggio può cambiare la risposta.
Ad esempio, penso che sia difficile dotare una macchina del concetto di infinito programmando in assembler, però se si utilizza il linguaggio di programmazione evoluto di Wolfram Alpha la cosa diventa assai semplice:
http://www.wirgilio.it/blog/2010/03/06/come-utilizzare-wolfram-alpha-per-lesame-di-analisi/
[url=http://www.wolframalpha.com/input/?i=sum+1/(n^2%2B1)]Esempio di calcolo 1[/url]
[url=http://www.wolframalpha.com/input/?i=limit+n/(n%2B1)+n+to+infinity]Esempio di calcolo 2[/url]

Ti spara fuori risultati a derivate, integrali e equazioni differenziali senza battere ciglio. E' in grado di trattare anche gli "o piccolo" per chi sa cosa sono...
Da questi link si deduce che le macchine non si scompongono minimamente a trattare l'infinito, e che quindi è importante solo come ci rivolgiamo a loro.
Se non riusciamo a farci capire il problema è del nostro linguaggio e quindi occorre passare ad un linguaggio di superiore astrazione.

Il problema non è quindi della macchina (tra parentesi, alle macchine NON va spiegato nulla!! Non sono mica bambini!! Le macchine vanno riempite di istruzioni da elaborare e basta)... Il problema è dell'utilizzatore della macchina, che deve costruire linguaggi di programmazione sempre più astratti ed elaborati man mano che cresce il suo bisogno di far elaborare alla macchina concetti astratti e complessi. Tutto qui.
Ho fatto l'esempio di Wolfram Alpha, ma non escludo che ci siano altri linguaggi di programmazione in cui esistono librerie matematiche serie (sicuramente gli altri linguaggi "scientifici" tipo Octave o Scilab); basterebbe al limite vedere come loro spiegano l'infinito al PC.
E tra parentesi, illustri matematici ci hanno messo anni a partorire http://www.wolframalpha.com , quindi suppongo che non sia il caso di giocare a reinventare la ruota, nè credo sia il caso di offenderli ponendo delle domande francamente sciocche...

paolo ha scritto:

In 7 anni di ILDN, voto questa discussione come la più creativa mai avviata in tutti i Forum Applause


Mah Confused
Secondo me è da mettere al pari di domande tipo: "Voi come realizzereste la fusione fredda?", "Voi come spieghereste il concetto del bello a una macchina?", "Può un computer comprendere l'orgasmo?"
La mia risposta a tutte queste domande è: al PC non gliene frega nulla di capire un concetto, che sia il bello, l'infinito o l'orgasmo. Gli basta sapere come trattarlo, e quelle sono istruzioni che dobbiamo dargli noi, con la nostra intelligenza.
Il PC non sa il significato di nemmeno una parola del vocabolario, ma questo non gli impedisce di far scattare il correttore ortografico quando digitiamo male qualcosa... Non è che i tizi di OpenOffice hanno spiegato al PC il significato di tutte le parole... gli hanno solo dato un algoritmo sofisticato in grado di approssimare con ragionevole precisione i nostri errori di battitura.

Ciao ciao

Amministratore di
www.it-opensuse.org

Ritratto di Frag91
Frag91
(Monster)
Offline
Monster
Iscritto: 12/12/2006
Messaggi: 273

Fantastico..
Io avevo pensato a qualcosa del tipo:
Prendi un numero intero senza segno, e fallo partire da 0.
Incrementa di uno, e di uno ancora, fino a raggiungere il suo limite ovvero 4.294.967.295;
Ora incrementa di un'altro, ti ritroverai a 0 che è < 4.294.967.295, ora riprovaci, incrementa di uno ancora, e un'altra volta ancora, vedi, per te l'infinito è quel numero > di 4.294.967.295, che purtroppo, non riesci nemmeno a immaginare.

Come noi dopo tutto..

Ritratto di ferdybassi
ferdybassi
(Guru)
Offline
Guru
Iscritto: 11/09/2005
Messaggi: 2668

Frag91 ha scritto:


Io avevo pensato a qualcosa del tipo:
cut...


Ops, se vogliamo restare nel filosofico con ben pochi sbocchi pratici, io utilizzerei l'esempio di una serie che tende a infinito, oppure gli chiederei di dividere un numero per zero. Il risultato che non riesce a ottenere è l'infinito che sta cercando di capire.

Ciao ciao

Amministratore di
www.it-opensuse.org