|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#141 | |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
il BrainFuck è utilissimo per progettare sistemi antipirateria: immaginate un poveraccio di hacker che deve crackare dei dati criptati tramite uno script BrainFuck interpretato just-in-time ce lo voglio
|
|
|
|
|
|
|
#142 | |
|
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Quote:
Altrimenti, usare un algoritmo ugualmente semplice ma con un tempo lineare invece di uno con un tempo esponenziale, fa la differenza tra un programma che funziona, e uno che non funziona. Perchè ripeto, nell'esempio che hai scritto sei stato disonesto. Hai messo un bel "if (i < 10) ..." e poi hai detto:"Funziona!". Adesso metti "i < 80". Funziona ancora? Funziona "abbastanza"? Secondo me l'approccio del "chissenefrega, tanto metto i < 10 e parte..." è fare le cose a braccio. E non c'è metodologia che riesca a raddrizzare questa mentalità. A me non piace il TDD, ma il motivo per il quale è richiesto scrivere dei test per tutto non è fine a se stesso. Il motivo è spingere il programmatore a pensare a fondo a quello che sta scrivendo.
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers Ultima modifica di shinya : 09-07-2008 alle 12:03. |
|
|
|
|
|
|
#143 | |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7258
|
Quote:
per me la seconda, quindi il mio programma soddisfa pienamente i vincoli, già sapere i primi 25 numeri della serie è di utilità relativa.. ne bastano anche 10 per capire se l'algoritmo è corretto o no. il motivo dell'esistenza dei test comunque non è quello di far pensare a quello che si scrive, ma quello di isolare il comportamento di un modulo per poterlo testare, altrimenti dovremmo aspettare che il programma sia completo per poterne testare anche una piccola parte. questa cosa già si faceva in maniera più scomoda e macchinosa prima del TDD usando dei main fittizzi ecc.. ovviamente in maniera molto meno esasperata. il TDD ha portato all'automatizzazione di questo processo tornando al nostro discorso... uno che impara a programmare non deve assolutamente pensare all'efficienza dei suoi algoritmi, ma soltanto alla correttezza. per l'efficienza c'è sempre tempo dopo e solo quando serve Ultima modifica di k0nt3 : 09-07-2008 alle 12:38. |
|
|
|
|
|
|
#144 |
|
Senior Member
Iscritto dal: May 2004
Città: Napoli
Messaggi: 773
|
Codice:
#include <stdio.h>
long long fibonacci(long long i)
{
if (i < 0) return -1;
if (i == 0) return 0;
else if (i == 1) return 1;
else return fibonacci(i-1) + fibonacci(i-2);
}
Comunque no, non dovrebbe essere standard, che compilatore lo supporta? (immagino il Visual C++ ma sono troppo pigro per controllare )Edit: ok, dovevo pensare prima di parlare: mi correggo, lo supporta anche gcc, codificando su 64 bit
__________________
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization. --Gerald Weinberg Ultima modifica di Albi89 : 09-07-2008 alle 12:16. |
|
|
|
|
|
#145 | |||||||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Fermo restando il calcolo del numero bug per linea di codice è una metrica abbastanza usata in informatica. Quote:
Codice:
Info = DB.Gets('SELECT Nome, Cognome, CodiceFiscale, Residenza, Cittadinanza FROM Utenti WHERE ID = %s', (12345, ))
Nome, Cognome, CodiceFiscale, Residenza, Cittadinanza = Info
La versione senza assegnamento multiplo sarebbe questa: Codice:
Info = DB.Gets('SELECT Nome, Cognome, CodiceFiscale, Residenza, Cittadinanza FROM Utenti WHERE ID = %s', (12345, ))
Nome = Info[0]
Cognome = Info[1]
CodiceFiscale = Info[2]
Residenza = Info[3]
Cittadinanza = Info[4]
Quote:
Quote:
Quote:
In ogni caso, superati i 64 bit il problema col C si riproporrebbe. Con Python no. Quote:
Io avevo chiesto di tirare fuori l'EQUIVALENTE di un'applicazione di cui avevo fornito il codice in Python. Tu, come programmatore, non puoi fare di testa tua e assumere cose diverse: sei tenuto COME MINIMO a rispettare i REQUISITI del problema. Sull'implementazione io non avrò nulla da dire, purché però i requisiti siano rispettati alla lettera. Quindi anche la tua soluzione ricorsiva sarebbe andata bene, seppur estremamente inefficiente, posto che avesse risolto il problema. 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 |
|||||||
|
|
|
|
|
#146 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7258
|
quindi?
voglio vedere come dimostri che la versione ricorsiva non è corretta.. è la trascrizione 1:1 della definizione di successione di fibonacci praticamente ps. probabilmente ti è sfuggito il fatto che nessun software può calcolare tutta la successione.. è infinita, mentre la memoria di un PC è finita, quindi tutti gli algoritmi sarebbero sbagliati secondo la tua curiosa interpretazione. ma se la memoria fosse infinita sia la soluzione ricorsiva che quella non ricorsiva riuscirebbero a calcolare tutta la serie Ultima modifica di k0nt3 : 09-07-2008 alle 15:04. |
|
|
|
|
|
#147 | ||
|
Senior Member
Iscritto dal: May 2004
Città: Napoli
Messaggi: 773
|
Quote:
Il frammento di codice di cdimauro era, perlappunto, un'oggetto su cui poter iterare col for "foreachoso" di python e che mantenesse nota dell'ultimo valore stampato; nella mia vita non credo che mi troverò mai a iterare su fib, ma è un esempio che si può adattare a qualunque sequenza virtualmente infinita di numeri. Le altre (a parte quella di shinya) non solo sono semplici funzioni, ma non assolvono allo scopo iniziale. Quote:
__________________
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization. --Gerald Weinberg |
||
|
|
|
|
|
#148 | ||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
La versione che hai fornito NON è corretta perché NON è in grado di generare una sequenza virtualmente illimitata di numeri della successione di Fibonacci. Quote:
Il concetto è che tu, intanto, mi devi garantire di generare numeri fino a quando io lo riterrò opportuno. Questo significa che potenzialmente potrei anche arrivare a occupare tutta la memoria del PC e mandarlo in crash, ma non me ne frega niente: intanto genera i numeri e non ti fermare. Esempio pratico: for n in fib(): print n Questa continua a generare numeri fino a quando non decido di premere Ctrl-C o di chiudere l'applicazione. Non c'è nessun limite fissato A PRIORI.
__________________
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 |
||
|
|
|
|
|
#149 | |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7258
|
Quote:
quindi a livello concettuale non c'è nessuna differenza: entrambi gli algoritmi generano tutta la successione solo se la memoria disponibile è illimitata. l'unica differenza è che quello ricorsivo si ferma prima mentre quello iterativo dopo |
|
|
|
|
|
|
#150 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
__________________
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 |
|
|
|
|
|
#151 | |
|
Senior Member
Iscritto dal: May 2004
Città: Napoli
Messaggi: 773
|
Quote:
Il for del python è in pratica un for each, itera sugli elementi che sono contenuti nell'oggetto fib. Dunque fib concettualmente "contiene" tutti gli elementi della successione di fibonacci, così come lo potrebbe fare un array infinito che contenga tutta la successione. Quando usi la tua funzione fib invece gli dai un limite superiore e lui calcola fin lì, si ferma e ti restituisce il valore. Edit: in ogni caso propongo di cambiare argomento... so dai tanti altri tuoi post che sei competente ed esperto, quindi non credo proprio che tu davvero non colga la differenza... penso semplicemente che vuoi farci uscire pazzi ripetendo le stesse cose fib(50) volte
__________________
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization. --Gerald Weinberg Ultima modifica di Albi89 : 09-07-2008 alle 15:41. |
|
|
|
|
|
|
#152 | |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7258
|
Quote:
|
|
|
|
|
|
|
#153 | |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7258
|
Quote:
ma veniamo al dunque: è meglio iniziare con un linguaggio a oggetti? dipende python è un linguaggio a oggetti? certamente, ma è anche procedurale e funzionale |
|
|
|
|
|
|
#154 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
E' inutile: con te è una causa persa in partenza.
Ti ho fatto vedere come funziona Python, e torni nuovamente sul solito discorso dei paradigmi. Ti ho fatto vedere quali erano i REQUISITI della generazione dei numeri di Fibonacci e, da "buon" informatico, li hai puntualmente disattesi cercando di spostare la discussione verso altri lidi. Vuoi sempre cadere in piedi anche sei hai torto marcio. Per fortuna scripta manent, come dicevano gli antichi latini: gli altri utenti possono verificare come sono andate le cose.
__________________
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 |
|
|
|
|
|
#155 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7258
|
i "requisiti" sarebbero generare "tutta" la successione di fibonacci? no perchè se è così non mi sforzo nemmeno di pensare un algoritmo visto che sarebbe una fatica inutile
|
|
|
|
|
|
#156 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
I requisiti li trovi nell'ultima parte di questo messaggio: http://www.hwupgrade.it/forum/showpo...6&postcount=92
__________________
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 |
|
|
|
|
|
#157 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7258
|
penso che sia abbastanza inutile (anche difficile e sostanzialmente OT) cercare di fare un programma "perfettamente" equivalente a quello in java, ogni linguaggio ha le sue caratteristiche
|
|
|
|
|
|
#158 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Le tue opinioni non contano: i requisiti sono quelli, e li devi rispettare.
L'implementazione ovviamente è libera. La soluzione di shinya risponde PERFETTAMENTE ai requisiti. La tua NO, e non venirmi a dire che in C non si potrebbe fare.
__________________
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 |
|
|
|
|
|
#159 |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7258
|
ah beh allora facciamo che anche le tue opinioni non contano e la discussione finisce qui
se vuoi puoi aprire un forum dove ci sei solo te
|
|
|
|
|
|
#160 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
__________________
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 |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:24.












)
voglio vedere come dimostri che la versione ricorsiva non è corretta.. è la trascrizione 1:1 della definizione di successione di fibonacci praticamente








