|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#181 | |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
|
|
|
|
|
|
|
#182 | |||
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7258
|
Quote:
il teorema fondamentale dell'algebra non vale sempre, ma solo quando si verificano queste condizioni. Quote:
comunque ti anticipo che se in matematica definisci una funzione senza specificarne il dominio e il codominio in realtà non definisci una funzione. Quote:
|
|||
|
|
|
|
|
#183 | |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
![]() Come avresti risolto il seguente esercizio di un ipotetico scritto di Analisi I: "Si determinino le soluzioni dell'equazione di secondo grado 3x^2+x+1=0"? |
|
|
|
|
|
|
#184 | |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7258
|
Quote:
e questo è ben diverso da dire: "ha due soluzioni che sono ecc.." ps. sinceramente non mi è mai capitato di vedere matematici troppo sbadati da questo punto di vista
|
|
|
|
|
|
|
#185 | |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
Se l'obiettivo è "determinare per via algoritmica le soluzioni di un'equazione di secondo grado" (senza ulteriori indicazioni) e per raggiungerlo si scrive un codice che permetta di ricavare SOLO le eventuali soluzioni reali allora l'obiettivo non è stato raggiunto, mi pare lapalissiano. |
|
|
|
|
|
|
#186 | ||
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7258
|
Quote:
ma soprattutto perchè limitare i coefficienti a numeri reali? non sarebbe stato più coerente permettere numeri complessi in input? forse sì, ma visto che la richiesta non specificava nessuna di queste cose va sempre bene Quote:
|
||
|
|
|
|
|
#187 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Non faccio fatica a crederti.
Quote:
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#188 | ||||||||
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Latita volutamente. Non sono io ad essere appassionato del termine "semplice". Ho anche chiesto cosa si intendesse per semplice (e, quindi, per complicato) ma non ho avuto risposta e dubito che ne avrò.
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
||||||||
|
|
|
|
|
#189 | |||||||||||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Quote:
Quote:
Quote:
E' l'introduzione dei salti condizionali che PUO' PORTARE a comportamenti non prevedibili. Da cui segue il famoso problema dello stop. Questo per essere precisi, semmai ci dovesse essere stata una qualche ambiguità. Quote:
Quote:
Però un comportamento del genere può dar luogo a riferimenti a oggetti inesistenti. Esempio: Pippo := Pluto non genera alcun messaggio d'errore anche se Pluto non è mai stata definita come variabile, visto che viene creata "al volo". Quote:
Quote:
Poi c'è anche quello di cui ho parlato con "Tiger", e riguarda l'eventuale presenza dello stesso metodo getValue definito in diverse interfacce, ma con di signature diverse. Anche questo modello, quindi, non mi sembra del tutto esente da "matasse da sbrogliare". Quote:
Sulle estensioni specifiche per una particolare estensione nulla da dire (ci sono anche in Python). Quote:
Nell'esempio che ho fornito ho definito un dizionario/mappa/hash e l'ho assegnato a una variabile. Che sia più sintetico è evidente, ma non dà per scontato niente: - che sia un dizionario è esplicitato dalle parentesi graffe; - che 'Qui', 'Quo' e 'Qua' siano delle stringhe è esplicitato dagli apici; - che 1, 2, 3 siano dei numeri interi è esplicitato dal fatto che siano costituiti da sole cifre numeriche e dall'assenza del punto; - che a 'Qui' corrisponda 1, 'Quo' a 2, 'Qua' a 3 è esplicitato dalla presenza dei due punti, che all'interno di un dizionario assumono il significato di separare la definizione della chiave dal valore; - che 'Qui' : 1 sia una entry del dizionario, 'Quo' : 2 un'altra e 'Qua' : 3 un'altra ancora è esplicitato dalla presenza della virgola, che all'interno di un dizionario ne separa i valori; - che alla variabile a venga assegnato il suddetto dizionario è esplicitato dalla presenza del carattere di uguale. Ripeto: io non vedo niente di "scontato". Quote:
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|||||||||||
|
|
|
|
|
#190 | |||||||||
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|||||||||
|
|
|
|
|
#191 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
Se in una riga di codice hai una probabilità media x di fare 1 errore, in n righe di codice tale probabilità salirà ad n*x. Quindi con l'aumentare delle righe di codice (1) la probabilità media di introdurre un bug è inevitabilmente destinata a crescere. Ovviamente in teoria potrebbe essere sempre possibile scrivere un programma privo di bug. Ma in teoria anche ripartendo dai cocci di porcellana potrebbe essere sempre possibile riottenere la tazza intera... solo che nella realtà non l'ho mai visto accadere (1) Ovviamente per righe di codice non vanno considerate quelle contenenti caratteri di controllo (quali le parentesi graffe) e/o linee UGUALI di codice perchè in quel caso stai semplicemente aggiungendo delle ridondanze che sono assolutamente inutili ai fini del programma e possono essere eliminate in diversi modi mantenendo il contenuto informativo del codice. Inoltre, tanto per essere + pignoli, così ad occhio direi che la probabilità di commettere errori è anche condizionata dal particolare costrutto utilizzato, ma questa è solo un'impressione dato che ora come ora non mi viene in mente una dimostrazione
__________________
|
|
|
|
|
|
|
#192 | |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Quote:
print(10); Io dubito fortemente che avremmo anche un solo errore. Sarebbe un caso di codice lunghissimo ma senza errori che confuterebbe l'idea che la semplice quantità sia un ostacolo alla correttezza. Non mi sembra così strano come ragionamento (pur non essendo logicamente esatto).
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
|
#193 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
In pratica hai fatto un semplice unrolling del loop: Codice:
10000.times{puts 10}
E inoltre puoi anche sbagliare a contare e quindi magari ne avrai 9999 o 10001 e quindi avrai introdotto dei bug. Inoltre avevo anche parlato di probabilità media di errori per riga di codice poichè vi possono essere righe di codice indubbiamente + soggette ad errori a causa della loro scarsa leggibilità e a causa di altri fattori.
__________________
|
|
|
|
|
|
|
#194 | |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7258
|
Quote:
|
|
|
|
|
|
|
#195 | |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Quote:
Codice:
print(10); print(10); print(10); print(10); print(10); print(10); print(10); print(10); print(10); print(10); print(10); print(10); print(10); print(10); print(10); print(10); print(10); print(10); print(10); print(10); print(10); print(10); print(10); print(10); print(10); print(10); print(10); print(10); print(10); print(10); print(10); print(10); print(10); print(10); ...e via così per altre chissenefrega quante linee.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
|
#196 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Esiste una correlazione statistica dimostrata fra complessita' di una soluzione, numero di righe di codice e defect rate. Espressa in maniera imprecisa, piu' il codice e' complesso maggiore e' la probabilita' di introdurre difetti. Questo e' dimostrato empiricamente, universalmente accettato, ed ogni tentativo di confutarlo ti rimanda allo studio dell'ampia letteratura in merito. Ora, la complessita' del codice puo' essere espressa attraverso svariate metriche come ben sappiamo: LoC e' una delle metriche e forse la meno precisa. Ma e' una metrica. Nel tuo esempio LoC non descrive correttamente la complessita' di quel codice, dove CC e' piu' preciso: quel codice ha complessita ciclometica 2 (Uno per il loop e uno per il corpo del metodo), quindi e' intuitivamente poco piu' complesso del semplice print. La probabilita' di errore e' leggermente maggiore perche' c'e' la possibilita' di sbagliare il conto. Anche considerando i punti funzionali come metrica, il tuo esempio risulta poco piu' complesso di un semplice print nonostante il numero di righe di codice. In generale usare LoC come metrica durante la scrittura del codice da' una minima idea della complessita' e ridurre il numero di righe di codice della propria soluzione a parita' di chiarezza e di concetti espressi e' una buona pratica che alla lunga porta a codice con meno difetti.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA Ultima modifica di fek : 13-10-2007 alle 12:10. |
|
|
|
|
|
|
#197 | |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Quote:
Tu parli di complessità del codice ma non è di complessità che stavo discutendo io. Io parlo di lunghezza in sè e per sè. Concordi o no sul fatto che la mera lunghezza, la semplice quantità di istruzioni, a prescindere dalla loro qualità, NON sia causa di errori?
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
|
#198 | ||
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Quote:
Meno righe di codice tendono a generare meno errori, ma e' statisticamente possibile, per quanto improbabile, scrivere milioni righe di codice senza errori. Ma come ti e' stato dimostrato LoC non e' la metrica piu' affidabile della complessita' del codice, infatti ripetere 1000 volte la stessa riga di codice non ne aumenta di 1000 volte la complessita'. LoC e' una buona metrica per dare indicazioni di massima mentre si scrive codice.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
||
|
|
|
|
|
#199 | |
|
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
Ovviamente se invece parli di codice generato e' un altro paio di maniche, in quel caso al suo posto va secondo me considerato il codice generatore.
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
|
|
|
|
|
#200 | |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Guarda, ci avrei scommesso. Lo sapevo ancora prima di cliccare il link nel messaggio di notifica via e-mail.
Che poi è normale: se io parlo della buccia delle mele e tu mi viene a dire che non è liscia perchè le arance sono rugose siamo a posto. Che giorno è? Le 14 e mezza. Per inciso, le rilevazioni statistiche su cui è fondata la metrica del software non dimostrano un bel nulla. Rilevano e basta. E qui immagino che si aprirà il cielo. Quote:
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! Ultima modifica di PGI-Bis : 13-10-2007 alle 14:16. Motivo: i congiuntiviiii |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:50.




















