Ciao a tutti, e' la prima volta che uso un forum e lo faccio perche' ho un disperato bisogno di aiuto. Ed ho visto che qui c'e' gent in gamba capace forse di aiutarmi. Devo consegnare un progetto in c entro il 20 di aprile e sono messa malissima perche' odio letteralmente il c!
Vi prego aiutatemi!
Questo e' il testo:
Arbitrage
Con arbitrage si intende lo sfruttamento di discrepanze di prezzo tra varie "merci" per realizzare un
profitto. Ad esempio, se vi sono discrepanze tali nei tassi di scambio di valute potrebbe essere
possibile trasformare un'unità di una valuta in più di un'unità della stessa valuta. Ad esempio,
supponiamo di essere nel 1685 o giù di lì. Abbiamo a disposizione un Louis d'or francese e con esso
possiamo comprare 0.7 Talleri del Palatinato, con 1 Tallero possiamo comprare 9.5 Guinee Inglesi,
con 1 Guinea possiamo comprare 10 Conghiglie di madreperla del Madagascar e con 1 Conchiglia
possiamo comprare 0.016 Luis d'or. Un abile finanziere munito di potenti strumenti informatici
(numerosi amanuensi) potrebbe allora cambiare più volte valuta partendo da 1 Luis d'or e comprare
0.7 × 9.5 × 10 × 0.016 = 1.064 Luis d'or, ottenendo così un profitto del 6.4%.
Si supponga di avere n valute c0, c1, ..., cn-1 ed una tabella R di tassi di cambio di dimensione n×n
tale che un'unità della valuta ci compri R[i, j] unità della valuta cj.
Parte A
Si dia un algoritmo efficiente per determinare se esiste oppure no una sequenza di valute <ci0, ci1, ...,cik> tale che
R[i0, i1] × R[i1, i2] ... × R[ik - 1, ik] × R[ik, i0] > 1.
Si dichiari qual'è il tempo di esecuzione dell'algoritmo proposto.
Parte B
Si dia un algoritmo efficiente per collezionare tale sequenza (se ne esiste almeno una) in un vettore.
Si analizzi il tempo di esecuzione dell'algoritmo proposto.
Programmi di test
Prendete "Il Sole 24 Ore" per cinque giorni e considerate una tabella di cambi di almeno 6 valute:
EU, USD, Yen, Sterlina, Rand e Real. Altre valute aggiuntive sono a vostra scelta.
Il formato della tabella deve essere una sequenza di linee con il simbolo della valuta seguito dai
rapporti di cambio. Usate il carattere di tabulazione per separare i campi dell'input. Ovviamente la
diagonale dovrà contenere degli 1. Il nome delle colonne è implicito.
Il vostro programma deve avere le seguenti funzioni
caricamento della tabella di cambi;
stampa, se possibile, della sequenza giornaliera di arbitrage.
LAB ALGO: Progetto Aprile 2007: Arbitrage Page 1 of 2
Inizialmente, avrete a disposizione 1000 Euro virtuali a testa, il voto finale dipenderà da quanto
avete guadagnato (o perso) dopo i cinque giorni.
Il programma deve poter funzionare dalla linea di comando prendendo come argomento un file
contenente la tabella giornaliera dei cambi.
Da consegnare
Il sorgente del programma, debitamente commentato. Fornire anche un file README.txt che spieghi
brevemente due cose:
perchè avete scelto una data rappresentazione interna per il vostro programma;
quali sono i bug noti e le limitazioni delle vostre implementazioni.