Forum » Programiranje » Zneski?
Zneski?
bigbug ::
Kako bi najlažje s pomočjo kakega programa (morda excel) prišel do tega iz katerih kombinacij zneskov je sestavljen določen znesek? Hvala za pomoč saj mi delo z kalkulatorjem vedno vzame dosti časa
primer:
513,52
689,12
-309,14
1052,19
689,33
-3056,99
-899.01
-121,89
600,22
11,55
3,01
-652,09
2523,69
-1989,86
233,11
22,22
-65,36
1910,01
-652,66
12,13
782,54
1168,73
_______________
Se pravi podani so znesi sedaj moram iz kombinacije raznih zneskov dobiti znesek 1380,69. Kako priti do tega najlažje?
Hvala
Lp
primer:
513,52
689,12
-309,14
1052,19
689,33
-3056,99
-899.01
-121,89
600,22
11,55
3,01
-652,09
2523,69
-1989,86
233,11
22,22
-65,36
1910,01
-652,66
12,13
782,54
1168,73
_______________
Se pravi podani so znesi sedaj moram iz kombinacije raznih zneskov dobiti znesek 1380,69. Kako priti do tega najlažje?
Hvala
Lp
- spremenil: bigbug ()
Monster ::
v excelu napis =SUM(zacetna celica:koncna:celica)
to pac napisi v vrstico kje bi rad imel rezultat...
to pac napisi v vrstico kje bi rad imel rezultat...
Ka zaboga...
Monster ::
em pa narobe si ti to zracunal ... ni tistih 1309 ampak 2464,37(sestevek negavitnih stevilk je -7747, pozitivnih pa 10211,37), tako da mislim da si se zmotil nekje...
Ka zaboga...
bigbug ::
Nisem se zmotil. Podani so razni zneski in iz raznih kombinacij podanih zneskov moram dobiti 1380,69. Ta znesek pa lahko sestavlja vec podanih zneskov 2,3,4,5....
Moje vprašanje je kako najhitreje skombinirat (kaksen program,excel) zneske med seboj (seštevanje,odštevanje) da bi dobil znesek ki ga iščem, se pravi 1380,69?
Moje vprašanje je kako najhitreje skombinirat (kaksen program,excel) zneske med seboj (seštevanje,odštevanje) da bi dobil znesek ki ga iščem, se pravi 1380,69?
Monster ::
čk kaj zdaj ti rabiš .. šeštevek al "razne kombinacije" daj malo bol definiraj ti to ... drugač je pa to excel mišljen
Ka zaboga...
Thomas ::
Išče vse podmnožice zneskov, katerih vsota je 1380,69.
Samo v Exlnu bo to mau počasi. Čeprav se jasno, da.
Oreh je pa NP - go figure!
Tukajle vodimo politiko - don't tell, dont ask!.
Samo v Exlnu bo to mau počasi. Čeprav se jasno, da.
Oreh je pa NP - go figure!
Tukajle vodimo politiko - don't tell, dont ask!.
Man muss immer generalisieren - Carl Jacobi
snow ::
Brute force.
Sem bil firbčen, kako hitro preišče vse možnosti:
Tam... ene 2 sekundi:
513,52
-309,14
1052,19
689,33
-3056,99
-899,01
600,22
11,55
2523,69
233,11
22,22
-121,89
11,55
-652,09
233,11
1910,01
513,52
689,12
689,33
-3056,99
11,55
3,01
-652,09
2523,69
-1989,86
22,22
-65,36
1910,01
782,54
513,52
600,22
-652,09
2523,69
-1989,86
233,11
22,22
-652,66
782,54
689,12
-309,14
1052,19
689,33
-3056,99
-899,01
-121,89
3,01
233,11
22,22
1910,01
1168,73
689,12
1052,19
689,33
-3056,99
-899,01
-121,89
11,55
3,01
-65,36
1910,01
1168,73
1052,19
-899,01
-121,89
600,22
233,11
-652,66
1168,73
513,52
689,12
1052,19
689,33
-3056,99
-899,01
600,22
3,01
2523,69
-1989,86
22,22
-65,36
-652,66
782,54
1168,73
689,12
1052,19
-3056,99
-899,01
-121,89
600,22
11,55
3,01
-652,09
2523,69
-1989,86
1910,01
-652,66
12,13
782,54
1168,73
Sem bil firbčen, kako hitro preišče vse možnosti:
#include <iostream> #include <cmath> int main() { float weights[] = {513.52,689.12,-309.14,1052.19,689.33,-3056.99,-899.01,-121.89,600.22,11.55,3.01,-652.09,2523.69,-1989.86,233.11,22.22,-65.36,1910.01,-652.66,12.13,782.54,1168.73}; float target = 1380.69; float sum; for(unsigned int i=0;i<(1<<(sizeof(weights)/4));i++) { sum = 0; for(unsigned int j=0;j<sizeof(weights)/4;j++) { sum += ((i>>j)&1)*weights[j]; } if(fabs(sum-target)<0.001) { for(unsigned int j=0;j<sizeof(weights)/4;j++) { if((i>>j)&1) { std::cout<<weights[j]<<std::endl; } } std::cout<<std::endl; } } system("pause"); return 0; }
Tam... ene 2 sekundi:
513,52
-309,14
1052,19
689,33
-3056,99
-899,01
600,22
11,55
2523,69
233,11
22,22
-121,89
11,55
-652,09
233,11
1910,01
513,52
689,12
689,33
-3056,99
11,55
3,01
-652,09
2523,69
-1989,86
22,22
-65,36
1910,01
782,54
513,52
600,22
-652,09
2523,69
-1989,86
233,11
22,22
-652,66
782,54
689,12
-309,14
1052,19
689,33
-3056,99
-899,01
-121,89
3,01
233,11
22,22
1910,01
1168,73
689,12
1052,19
689,33
-3056,99
-899,01
-121,89
11,55
3,01
-65,36
1910,01
1168,73
1052,19
-899,01
-121,89
600,22
233,11
-652,66
1168,73
513,52
689,12
1052,19
689,33
-3056,99
-899,01
600,22
3,01
2523,69
-1989,86
22,22
-65,36
-652,66
782,54
1168,73
689,12
1052,19
-3056,99
-899,01
-121,89
600,22
11,55
3,01
-652,09
2523,69
-1989,86
1910,01
-652,66
12,13
782,54
1168,73
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins
snow ::
Vseh kombinacij je 2^22, kar je dobre 4 miljone. Tak, da hitro pospravi kalkulator stran.
Aja, tale moja koda dela verjetno samo do 32 števil. Ampak za vsako dodatno število traja 2x dlje...
Aja, tale moja koda dela verjetno samo do 32 števil. Ampak za vsako dodatno število traja 2x dlje...
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins
Thomas ::
Eksponentna algoritemska odvisnost, ja.
Če bi bilo števil recimo 100 - say goodbye!
Če bi bilo števil recimo 100 - say goodbye!
Man muss immer generalisieren - Carl Jacobi
snow ::
Sem probval malo tudi EA, ampak je preveč 'razgiban teren', da bi našlo globalni minimum.
Grem raje mal o proteinih študirat...
Grem raje mal o proteinih študirat...
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins
Binji ::
Meni se to slisi sumljivo podobno kaki nalogi o dinamicnem programiranju tako da razisci kaj v tej smeri
Kdor ne navija ni Slovenc, hej, hej, hej!
Sayer ::
Brute force bi lahko izboljsal, ce gledas za doloceno kombinacijo kaksna je vsota in potem pogledas koliko negativnih stevil ti je se ostalo. V primeru da abs(vsota negativnih stevi)l ne presega trenutne razlike med vsoto zneska ter pricakovanim rezultatom lahko mirno zakljucis s trenutno kombinacijo. Velja tudi obratno, torej ce imas trenutno negativni znesek gledas sum preostalih pozitivinh stevil. Na ta nacin si zmanjsal prostor za preiskovanje.
LP
LP
Zgodovina sprememb…
- spremenil: Sayer ()
snow ::
Sprogramiraj, pa prilepi kodo, pa gremo štopat.
Pa povej koliko časa si programiral.
Pa povej koliko časa si programiral.
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Pomoč pri obrazložitvi plačilnih list (strani: 1 2 )Oddelek: Loža | 11545 (9730) | Lonsarg |
» | Vrtilna tabela - vsota dveh stolpcev iz dveh različnih tabelOddelek: Pomoč in nasveti | 657 (588) | Selotejp |
» | obrestno obrestni računOddelek: Šola | 6917 (2203) | Rok22 |
» | Izobraževalni tečaji in težave s papirjiOddelek: Loža | 1395 (1068) | Tody |
» | double v bitno in obratno? (c++)Oddelek: Programiranje | 1054 (940) | noraguta |