Doet iets met Cloud (MS/IBM)
Was DIT de testset, heb ik daarvoor een boom datastructuur gemaakt waarmee ik in O(n) een codewoord kon opzoeken???
DAMN!
He who knows only his own side of the case knows little of that.
hmm maar goed dat ik niet al te intensief heb getest
jij doet niet mee zeker??Op maandag 17 december 2001 13:47 schreef hezik het volgende:
misschien handig als je er even een link naar de vraag bij zet?
[topic=340659/1/25]
Doet iets met Cloud (MS/IBM)
Op maandag 17 december 2001 13:48 schreef RickN het volgende:
Geintje zeker....
Was DIT de testset, heb ik daarvoor een boom datastructuur gemaakt waarmee ik in O(n) een codewoord kon opzoeken???
DAMN!
het ging om de truc
Doet iets met Cloud (MS/IBM)
Dit is net iets anders als de voorbeeld testsetOp maandag 17 december 2001 13:48 schreef Orphix het volgende:
dus als het voorbeeld het deed, dan was het goed??
hmm maar goed dat ik niet al te intensief heb getest
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| int main(int argc, char* argv[])
{
cout << "h
he
hel
hell
hello
h
he
ide
idea
h
onmogelijk" << endl;
return 0;
} |
(pff ja niet gaan zeuren over de newlines he)
Op maandag 17 december 2001 13:52 schreef wasigh het volgende:
[..]
Dit is net iets anders als de voorbeeld testset
1
2
3
4
5
6
7
8
9
10
| 5 hell 3 hello 4 idea 8 next 8 super 3 3 324450 32210 380 |
zoek de verschillen
1
2
3
4
5
6
7
8
9
10
11
| i id hel hell hello i id ide idea i onmogelijk |
Doet iets met Cloud (MS/IBM)
that's lifeOp maandag 17 december 2001 14:16 schreef Twilight Burn het volgende:
En wij moesten dat programma bouwen voor 1000 woorden van 50 tekens....
(waar moeten in een halve dag zo'n testset vandaan halen met goede uitkomst?)
jaOp maandag 17 december 2001 14:16 schreef Twilight Burn het volgende:
En wij moesten dat programma bouwen voor 1000 woorden van 50 tekens....
daar moeten de mods uit de opgave natuurlijk wel mee kunnen werken
<edit>
damn wasigh
das ook voor het eerst dat je sneller bent
Doet iets met Cloud (MS/IBM)
Kan ik er mischien nog wat van leren
Alvast bedankt !!
Het oneindige X 0
Ik denk dat je aan mijn code weinig zult hebben iig (C++), ik zit on-the-fly wat te programmeren bij dit soort dingen eigenlijk
oHh maakt niet zo uitOp maandag 17 december 2001 16:10 schreef Orphix het volgende:
Ik vraag me af hoeveel mensen hier hun opdrachten goed met commentaar voorzien
Ik denk dat je aan mijn code weinig zult hebben iig (C++), ik zit on-the-fly wat te programmeren bij dit soort dingen eigenlijk
ik wil gewoon ff kijken
of mag dat niet ??
Het oneindige X 0
Je mag mijn oplossing best hebben / inzien hoor.Op maandag 17 december 2001 16:17 schreef Wokker het volgende:
[..]
oHh maakt niet zo uit
ik wil gewoon ff kijken![]()
of mag dat niet ??
Maar het bestaat uit 161 regels, dus minder geschikt om hier neer te zetten denk ik.
Hier volgt alvast een voorproefje, de main routine:
Kan niet fout zijn toch? Als je de rest ook wilt, geef maar je mailadres. (Ik geef er overigens geen uitleg bij).int main(int argc, char *argv[])
{
Init();
DictRead();
HandleInput();
}
Uit een heldere opzet met begrijpelijke algoritmes volgt logischerwijs een correct programma. Testen daarentegen kan enkel gebruikt worden om fouten aan te tonen.
Mooie "seperation of concerns"Op maandag 17 december 2001 16:32 schreef Munters het volgende:
[..]
Hier volgt alvast een voorproefje, de main routine:
code:
1 2 3 4 5 6int main(int argc, char *argv[]) { Init(); DictRead(); HandleInput(); }
He who knows only his own side of the case knows little of that.
Verwijderd
Het verbaast me dat er hier veel de mist in gingen.
Ik denk dat met deze set er nog veel meer de mist in zouden gaan :
1
2
3
4
5
6
7
| 4 got 10 hebben 20 houden 2 geheel 2 1 3570 |
Waar zit de moeilijkheid ? Wel, in het feit dat iedereen vertrekt met een h (20+2 > 10+2), en daarna in die richting verder gaat. En dus met 'ho' voor de dag komt na de 5, om dus te eindigen met 'hou'. Helaas, want 'go' heeft hogere prioriteit dan 'ho'...en dus met het 'go' en dan 'got' zijn. Als de jury ff wil hertesten met deze
He who knows only his own side of the case knows little of that.
Verwijderd
Maar ik kan me inbeelden dat als je de 'jury-val' niet overleefd, dat je die van mij ook niet overleefd. En dat er dan nog zijn die die van de jury overleven, maar de mijne niet. Snappie ?
Verwijderd
Algoritme:
Laad de library per woord. Ik houd per (deel)woord een lijst bij wat de prioriteit is :
en per positie houd ik bij welke letters mogelijk zijn:woord-lengte:[deel-woord:prio,...]
1:[h:7,i:8,n:8,s:3]
2:[he:7,id:8,ne:8,su:3]
3:[hel:7,ide:8,nex:8,sup:3]
4:[hell:7,idea:8,next:8,supe:3]
5:[hello:4,super:3]
Dit alles per relatief snelle objecten (associatieve array) in een array.string-positie:[lijst-mogelijke-letters]
0:[h,i,n,s]
1:[e,d,u]
2:[l,e,x,p]
3:[l,a,t,e]
4:[o,r]
Daarna ga ik recursief de woorden proberen. Onmogelijke letters probeer ik niet (op positie 1 het cijfer 1 kan bijv. niet). Structuur:
Het enige jammerre is: ik stop de te proberen string steeds weer op de stack, omdat je in javascript niet het laatste teken van de string af kunt kappen. Dingen als str.length-- werkt niet<invoer:=mogelijke-letters,...>
<324450:=hi,de,l,l,o>
<32210:=hi,de,e,a>
<380:=hi,>
<8173330:=,,,,,>
Heeft iemand nog een idee om dat recursieve gedoe wat efficienter te doen?
Btw: dit is m'n eerste zelfbedachte recursie-algoritme
Zo'n lang verhaal schrijf je nooit in 1 keer goed
Ja, voor de rest is het een takkenzooi.Op maandag 17 december 2001 16:36 schreef RickN het volgende:
[..]
Mooie "seperation of concerns"
(Een weight-balanced 26-voudige boomstructuur dus).
Uit een heldere opzet met begrijpelijke algoritmes volgt logischerwijs een correct programma. Testen daarentegen kan enkel gebruikt worden om fouten aan te tonen.
Verwijderd
Ik zou wel eens willen zien wat er in je Init() staat ;): zanstra@hotmail.comOp maandag 17 december 2001 16:32 schreef Munters het volgende:
Kan niet fout zijn toch? Als je de rest ook wilt, geef maar je mailadres. (Ik geef er overigens geen uitleg bij).
(gelukkig voor jou dat de test set niet zo groot was
Ik heb ook een boomstructuur. De mijne is tienvoudig en elk pad geeft de codering van een woord uit de library aan. Deel paden bevatten dus de codering deelwoorden. Een (deel)pad bevat alleen het (deel)woord met de hoogste prioriteit. Een (deel)woord dat dus nooit opgevraagd kan worden (omdat het een te lage prioriteit heeft) wordt dus uiteindelijk niet in mijn boom opgeslagen. Het opzoeken van een code woord bestaat nu nog uit het het volgen van het bijbehorende pad door de boom (dat dus helemaal bepaald wordt door de cijferreeks van het gecodeerde woord) en onderweg alle (deel)woorden die je tegenkomt af te drukken. Da's mooi O(n) dus, met voor n de lengte van het codewoord. Sneller opzoeken kan nietOp maandag 17 december 2001 23:45 schreef Munters het volgende:
[..]
Ja, voor de rest is het een takkenzooi.
(Een weight-balanced 26-voudige boomstructuur dus).
He who knows only his own side of the case knows little of that.