Avatar billede juahm Nybegynder
14. juli 2009 - 00:53 Der er 2 kommentarer og
1 løsning

Mulige kombinationer af aktievægte med 3 aktiver

Jeg skal have lavet en "allocation matrix", som indeholder alle mulige kombinationer af vægte mellem 3 aktiver (skal summe til 1) med præcisionsvariablen p, eksempelvis giver p=0,05 omkring 231 kombinationer, mens en præcision på 0,01 giver over 5000 forskellige kombinationer (tror jeg).

Eksempel:

aktie1 aktie2  aktie3
1,00    0,00      0,00      = 1
0,95    0,05      0,00      = 1
0,95    0,00      0,05      = 1
…      …      …

osv. indtil alle mulige kombinationer er udtømt, dvs. at arrayet får en størrelse på array [m][3], hvor m er mulige løsninger afhængig af p.

Jeg har indtil videre forsøgt med 3 while løkker ind i hinanden, men det lykkes ikke helt rigtigt og jeg er kørt fast med at få genereret alle vægtene. Jeg bruger lige pt. 2d array til at gemme i, da jeg ikke skal have en præcision større end 0,01 i vægtene.  Jeg vil virkelig sætte pris på noget hjælp med, hvordan denne her skal grejes.

MVH
Junaid
Avatar billede arne_v Ekspert
14. juli 2009 - 01:22 #1
Hurtigt forsøg:

public class Split {
    public static void test(int n) {
        int ix = 1;
        for(int i = 0; i <= n; i++) {
            for(int j = 0; j <= n - i; j++) {
                int k = n - i - j;
                double aktie1 = i / (double)n;
                double aktie2 = j / (double)n;
                double aktie3 = k / (double)n;
                System.out.println(ix + " " + aktie1 + " " + aktie2 + " " + aktie3);
                ix++;
            }
           
        }
    }
    public static void main(String[] args) {
        test(20);
        test(100);
    }
}
Avatar billede juahm Nybegynder
14. juli 2009 - 10:15 #2
Super smart :) takker mange gange, Arne ...smid lige et svar.
Avatar billede arne_v Ekspert
14. juli 2009 - 14:59 #3
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester