Programming Contest Nieuwe Stijl: Contest 3 *uitslagen!* Vorige deel Overzicht Volgende deel Laatste deel

Dit topic is onderdeel van een reeks. Ga naar het meest recente topic in deze reeks.

Pagina: 1 ... 4 ... 11 Laatste
Acties:
  • 6.506 views sinds 30-01-2008

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Marcks
  • Registratie: April 2007
  • Laatst online: 12-09 13:37
@-wm-: Het scoreoverzicht van die validator werkt nog niet helemaal. Wanneer iemand bijvoorbeeld de hoogste score haalt, wordt plaats 1 overschreven, maar schuifen de 'oude' score's niet naar beneden.

Mijn oude idee blijkt inmiddels prima te werken overigens; deelnemers sorteren op prioriteit en vervolgens met enkele simpele regels een bed toewijzen. Daarbij wordt verder nergens rekening gehouden met vegetariërs en niet-roomies, maar de score valt me allerminst tegen, zeker voor een programmaatje dat in enkele milliseconden een output genereert.

Nadat ik zo efficiënt mogelijk een eerste indeling heb gemaakt, ga ik denk ik de deelnemers onderling afspraken laten maken. Dat wil zeggen, alle deelnemers gaan met alle andere deelnemers van bed wisselen, en enkel als aan één van de onderstaande twee voorwaarden voldaan wordt, nemen de twee betrokken deelnemers hun oorspronkelijke plaats weer in.
1) De nieuwe indeling is illegaal
2) De nieuwe indeling levert minder punten op dan de oude


Als ik dit proces laat itereren, zullen (naar mijn verwachting) bijna alle vegetariërs een andere vegetariër opzoeken, zullen niet-roomies 'uit eigen beweging' vertrekken en zullen roomies elkaar op gaan zoeken. Hoe snel en hoe effectief deze aanpak is, weet ik niet, maar de score zal in ieder geval blijven groeien totdat een bepaald 'optimum' bereikt is.


edit:
_wm_ schreef op zaterdag 26 mei 2007 @ 12:32:

//offtopic:
er zijn al 71 punten gehaald op de officiële testset (hash: f2097397218da09178b24a2c23d03800c4514d97a53c1ee50fa5b99475d37323)... vind ik al best veel!! wie was het? ;)
It is I. :)

[ Voor 10% gewijzigd door Marcks op 26-05-2007 12:43 ]

Ik veronschuldig mij bij voorbaat voor het bovenstaande.


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Topicstarter
Creepy schreef op zaterdag 26 mei 2007 @ 11:09:
* Creepy mept -NMe-. Neem jij de beslissing maar :P

[...]
Partners hoeven denk ik niet verplicht in dezelfde kamer, althans, niet voor deze contest. Dat maakt het probleem wat lastiger en dus leuker. :)
_wm_ schreef op zaterdag 26 mei 2007 @ 11:33:
[...]

Heb ik net de validator aangepast, kan ie weer terug :)
Een huisje dat niet hééééélemaal stampvol zit, kan dus nóóit die 2 bonuspunten voor voorkeur krijgen, right?
Dus ook alléén maar in een vól huis?? 2 mensen zuiphuis en 1 zonder voorkeur levert dus niks op?
Jawel, 2 punten. Zou er ook nog een persoon bij zitten met de voorkeur "rookvrij", dan zouden alle bonuspunten vervallen. Het huisje hoeft voor die bonuspunten niet helemaal vol te zijn, maar er mogen géén voorkeuren in gemixt worden, anders dan de "joker"-voorkeur "geen". :)
:'( wat is het nou? 2 vegetariërs + 2 alleseters leverde eerst nog 2 punten op, maar met deze regel 0... toch?
Hmm, ik pas het nog één laatste keer aan: voor vegetariërs krijg je één punt per vegetariër, maar pas als er minimaal 2 in een huisje zitten. Dus 1 vegetariër helemaal alleen in een huisje: 0 bonuspunten. 1 vegetariër in een huisje waar ook alleseters in zitten: -2 punten. 2 vegetariërs in een huisje (ongeacht of daar alleseters bij zijn): 2 punten.
verplicht bij elkaar dus... Itt wat eerder gezegd werd! ok :)
Nee, toch niet. :P
En nu partners bij elkaar geplaatst móeten worden... Moet je daar ook weer rekening mee gaan houden... Veel te lastig ;-)
Juist niet, dat zou de opdracht veel makkelijker maken en dat lijkt me toch niet zo'n goed plan. :P


Ik pas zometeen de topicstart nog één laatste keer aan. Alle regels die dan in sectie "Spelregels" staan gelden. Omdat jullie er anders ook maar gek van worden beloof ik daar geen wijzigingen meer in te doen. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 09:42

Onbekend

...

@_WM_:

Kan je ook de output.ini's opslaan op je site?
Zo kunnen we de verschillen in de outputs bekijken.


Verder denk ik aan technieken om cijfers te geven aan tussenresultaten. (Sterke en zwakke combinaties.)
Ook wil ik het programma zelf laten kiezen in welke volgorde personen aan elkaar worden gekoppeld zodat optimale resultaten worden bereikt.


Even wat over mijn programma:
Ik programmeer dit in PHP omdat ik dit gemakkelijk vindt werken. Ik had ook voor Delphi kunnen kiezen, maar op mijn langzame PC is het ontwikkelen van PHP sneller.

De ini-files worden correct ingelezen en geschreven. Dat stuk code is zeer stabiel en loopt tot nu toe niet vast bij een defecte ini-file.
Ik ben nu aan het "echte' werk toe: namelijk de optimale resultaten berekenen.

Speel ook Balls Connect en Repeat


Acties:
  • 0 Henk 'm!

  • _wm_
  • Registratie: Mei 2007
  • Laatst online: 29-04 21:51
@-wm-: Het scoreoverzicht van die validator werkt nog niet helemaal. Wanneer iemand bijvoorbeeld de hoogste score haalt, wordt plaats 1 overschreven, maar schuifen de 'oude' score's niet naar beneden.
Ook onbekend schreef op zaterdag 26 mei 2007 @ 12:54:
@_WM_:

Kan je ook de output.ini's opslaan op je site?
Zo kunnen we de verschillen in de outputs bekijken.
Ik heb ze allemaal nog opgeslagen, maar er nog niks mee gedaan :)
Nu wordt alleen de hoogste score per set berekend, en opgeslagen. De lagere scores worden inderdaad overschreven, en er schuift niks naar beneden oid. Bij de set komt gewoon de nieuwe score te staan...

Ik zal anders per set wel een soort 'historie' maken van de punten die per set gehaald zijn. Dat is misschien wel leuk. Dan kan je het ook zien als iemand overal tweede wordt...

edit: oh ja, en ik zal de output.ini van elke score dan ook wel downloadbaar maken... :)
edit2: en wéér de scoretoekenning van de validator aanpassen nav -Nme- :'( :P

* _wm_ gaat aan de slag

[ Voor 7% gewijzigd door _wm_ op 26-05-2007 13:05 ]


Acties:
  • 0 Henk 'm!

  • _wm_
  • Registratie: Mei 2007
  • Laatst online: 29-04 21:51
en klaar is ie :)

nog immer: http://willem-mulder.nl/got/contest/validator.php

Je kan zelf opgeven of je je output.ini voor anderen zichtbaar wilt hebben of niet. Stel dat je erg hecht aan je testbestandje ofzo ;)

Heb ook even alle 'oude' scores verwijderd en diegene die ik nog zo had liggen opnieuw eringestopt. Dan zijn meteen de output.ini's ook beschikbaar, en zijn de scores in ieder geval correct...

[ Voor 33% gewijzigd door _wm_ op 26-05-2007 14:11 ]


Acties:
  • 0 Henk 'm!

  • Zr40
  • Registratie: Juli 2000
  • Niet online

Zr40

Moderator General Chat

heeft native IPv6

Het score-overzicht van de validator zet alle scores bij elkaar. Scores zijn niet vergelijkbaar over verschillende testbestanden. Bij een klein testbestand heb je een lagere maximum (en minimum) score die je kan behalen, vergeleken met een groter testbestand. Maar zelfs met een identieke deelnemers.ini zijn de te behalen scores verschillend bij andere meeting.ini bestanden.

Acties:
  • 0 Henk 'm!

  • _wm_
  • Registratie: Mei 2007
  • Laatst online: 29-04 21:51
Zr40 schreef op zaterdag 26 mei 2007 @ 14:19:
Het score-overzicht van de validator zet alle scores bij elkaar. Scores zijn niet vergelijkbaar over verschillende testbestanden. Bij een klein testbestand heb je een lagere maximum (en minimum) score die je kan behalen, vergeleken met een groter testbestand. Maar zelfs met een identieke deelnemers.ini zijn de te behalen scores verschillend bij andere meeting.ini bestanden.
ja, dus?

per set van meeting.ini en deelnemers.ini worden de scores vergeleken... Als je denkt dat je beter kunt met die set, moet je de bijbehorende deelnemers.ini en meeting.ini downloaden en die samen met jouw output.ini weer uploaden... Als je lager of gelijk scoort, kom je in de 'lagere scores' (die komen dan als uitklapmenu), als je het hoogste scoort kom je bovenaan...

daar is niks mis mee toch?

edit @zr40 volgend bericht: ok ;) zelf trouwens al output kunnen genereren? ik heb voor het avondeten sowieso een script werkend :) es kijken of ik marcks kan verslaan....

[ Voor 8% gewijzigd door _wm_ op 26-05-2007 14:58 ]


Acties:
  • 0 Henk 'm!

  • Zr40
  • Registratie: Juli 2000
  • Niet online

Zr40

Moderator General Chat

heeft native IPv6

_wm_ schreef op zaterdag 26 mei 2007 @ 14:32:
[...]


ja, dus?

per set van meeting.ini en deelnemers.ini worden de scores vergeleken... Als je denkt dat je beter kunt met die set, moet je de bijbehorende deelnemers.ini en meeting.ini downloaden en die samen met jouw output.ini weer uploaden... Als je lager of gelijk scoort, kom je in de 'lagere scores' (die komen dan als uitklapmenu), als je het hoogste scoort kom je bovenaan...

daar is niks mis mee toch?
Dat uitklapmenu is nu niet zichtbaar. Vandaar mijn verwarring :)

Acties:
  • 0 Henk 'm!

  • bomberboy
  • Registratie: Mei 2007
  • Laatst online: 20:08

bomberboy

BOEM!

jacovisscher schreef op zaterdag 26 mei 2007 @ 12:24:
...
Is het geen idee om (met behulp van een aantal vaststaande regels, zoals partners bij elkaar, organisatie bij elkaar, max een aantal invalidehuisjes) eerst een set van zo'n 200 random outputs te maken, daarna de 10 of 20 beste te kiezen (dus die de meeste punten opleveren), en dan van ieder van die 10 of 20 weer een aantal herschikkingen te maken (random dus). zodanig dat je weer een set van 200 indelingen krijgt, en daar herhaal je het proces mee.

...

Ik weet egt niet of dit uberhaüpt een goed werkend programma op kan leveren, maar het is een idee.
Ik zou erg graag wat reacties willen horen op het al dan niet werkbaar zijn hiervan.
Veel succes verder!
Wat je hier beschrijft komt min of meer neer op Simulated Annealing en dat is inderdaad een techniek die (succesvol!) voor optimalisatieproblemen als deze gebruikt wordt. Het is hierbij vooral belangrijk dat je initiële oplossing al zo dicht mogelijk bij de optimale oplossing zit en dat je voorzorgen neemt om aan lokale optima te ontsnappen.

Acties:
  • 0 Henk 'm!

Verwijderd

bomberboy schreef op zaterdag 26 mei 2007 @ 15:14:
[...]


Wat je hier beschrijft komt min of meer neer op Simulated Annealing en dat is inderdaad een techniek die (succesvol!) voor optimalisatieproblemen als deze gebruikt wordt. Het is hierbij vooral belangrijk dat je initiële oplossing al zo dicht mogelijk bij de optimale oplossing zit en dat je voorzorgen neemt om aan lokale optima te ontsnappen.
Voor dat lokale optima probleem bestaan er ook andere technieken. Andere technieken kunnen beter zijn en worden meer gebruikt.

Acties:
  • 0 Henk 'm!

  • _wm_
  • Registratie: Mei 2007
  • Laatst online: 29-04 21:51
ik zit de startpost even door te lezen om te kijken wat er uiteindelijk van gemaakt is ;)

maar nu kom ik alsnog iets tegen...
+2 Als alle mensen in een vol huis die zelfde voorkeur
hebben. Dit geldt _niet_ voor een huis gevuld met
mensen zonder voorkeur.
dat volle huis, dat hoefde toch niet? Aldus de 'definitieve' versie:
Het huisje hoeft voor die bonuspunten niet helemaal vol te zijn
hoe zit het nou?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Topicstarter
_wm_ schreef op zaterdag 26 mei 2007 @ 16:32:
dat volle huis, dat hoefde toch niet? Aldus de 'definitieve' versie:

[...]

hoe zit het nou?
Die +2 geldt alleen als het hele huis vol is, die +1 per persoon met dezelfde voorkeur in hetzelfde huis geldt altijd zolang er maar één voorkeur aanwezig is.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

_wm_ schreef op zaterdag 26 mei 2007 @ 16:32:
ik zit de startpost even door te lezen om te kijken wat er uiteindelijk van gemaakt is ;)

maar nu kom ik alsnog iets tegen...


[...]


dat volle huis, dat hoefde toch niet? Aldus de 'definitieve' versie:


[...]


hoe zit het nou?
Kan het zijn dat de score door je validator nog niet helemaal correct is? Want ik kom telkens een andere score uit. Ik hoop dat mijn berekening wel correct is, dus ik ben benieuwd waar het aan kan liggen.

Acties:
  • 0 Henk 'm!

  • Marcks
  • Registratie: April 2007
  • Laatst online: 12-09 13:37
De kleinste verandering kan inderdaad een wereld van verschil maken in de uitkomst, zo heb ik net ondervonden. Ik heb zojuist een bugje eruit gevist (mijn for-loop ging van 0 tot AantalDeelnemers - 1 i.p.v. 1 tot AantalDeelnemers). Achteraf gezien had ik daar beter van meet af aan consequent mee kunnen werken. Enfin, het probleem leidde tot één persoon die twee bedden in beslag had genomen, en één persoon die niet geplaatst werd. Dat laatste kostte mij natuurlijk tien strafpunten, maar nadat ik het foutje had verwijderd, was mijn score nog maar 81 i.p.v. 90, simpelweg omdat de nieuwe lijst net iets minder goed in het algoritme past.

Een tweede conclusie is dat ik de verschillende testsets apart moet houden, een lijst van 300 deelnemers gaat nooit in 200 bedden passen. :)

Ik veronschuldig mij bij voorbaat voor het bovenstaande.


Acties:
  • 0 Henk 'm!

Verwijderd

Marcks schreef op zaterdag 26 mei 2007 @ 17:31:
Een tweede conclusie is dat ik de verschillende testsets apart moet houden, een lijst van 300 deelnemers gaat nooit in 200 bedden passen. :)
Passe niet, maar het moet in principe met te rekenen vallen.

Acties:
  • 0 Henk 'm!

  • _wm_
  • Registratie: Mei 2007
  • Laatst online: 29-04 21:51
Verwijderd schreef op zaterdag 26 mei 2007 @ 17:21:
[...]


Kan het zijn dat de score door je validator nog niet helemaal correct is? Want ik kom telkens een andere score uit. Ik hoop dat mijn berekening wel correct is, dus ik ben benieuwd waar het aan kan liggen.
je .ini bestanden zijn ook steeds verschillend...
Of bedoel je dat ze anders zijn dan dat jouw validator aangeeft?

Probeer het nog eens? Welke score krijg jij en welke score geeft die van mij?

Ik heb geprobeerd steeds met de veranderende regeltjes mee te gaan, maar ik weet niet of dat altijd gelukt is ;)

Acties:
  • 0 Henk 'm!

Verwijderd

Vanmiddag ben ik weer aan de slag gegaan, heb nu het inlees gedeelte af. Nog aardig wat werk met m'n C hobby-skills, heb nu toch al zo'n 600 regeltjes. Heb ook een half uur met m'n domme kop tegen een '=' ipv '==' aan zitten staren zonder dat ik het doorhad 8)7.

Maar nog een tip: Misschien is het handig om een aantal voorbeelsituaties in de TS te zetten? Die maken het waarschijnlijk duidelijker dan een lap tekst.

PS: m'n programma doet er nu _0_ ms over om alles in te lezen en namen om te zetten in pointers

Acties:
  • 0 Henk 'm!

Verwijderd

_wm_ schreef op zaterdag 26 mei 2007 @ 17:43:
[...]


je .ini bestanden zijn ook steeds verschillend...
Of bedoel je dat ze anders zijn dan dat jouw validator aangeeft?

Probeer het nog eens? Welke score krijg jij en welke score geeft die van mij?

Ik heb geprobeerd steeds met de veranderende regeltjes mee te gaan, maar ik weet niet of dat altijd gelukt is ;)
Ik vermoed dat ik je foutje heb gevonden. Ik heb redelijk wat testen erop los gelaten. Het verschil zit namelijk alleen in de telling "roomiepunten binnen het huis". En aangezien partnerpunten 0 is, zijn er geen koppels gevormd.
Dus dan ben je de bonuspunten vergeten te tellen, wanneer er geen roomies in de kamer zijn gevonden. Maar wel als 1 van de roomies in hetzelfde huis zit.

Want als ik die puntentelling uitschakel in mijn teller, dan kom ik wel exact dezelfde waarde uit.
Even aanpassen in je validator dus. :)

Acties:
  • 0 Henk 'm!

  • _wm_
  • Registratie: Mei 2007
  • Laatst online: 29-04 21:51
Verwijderd schreef op zaterdag 26 mei 2007 @ 19:34:
[...]


Ik vermoed dat ik je foutje heb gevonden. Ik heb redelijk wat testen erop los gelaten. Het verschil zit namelijk alleen in de telling "roomiepunten binnen het huis". En aangezien partnerpunten 0 is, zijn er geen koppels gevormd.
Dus dan ben je de bonuspunten vergeten te tellen, wanneer er geen roomies in de kamer zijn gevonden. Maar wel als 1 van de roomies in hetzelfde huis zit.

Want als ik die puntentelling uitschakel in mijn teller, dan kom ik wel exact dezelfde waarde uit.
Even aanpassen in je validator dus. :)
ik heb het nagekeken, en nog eens nagekeken, maar volgens mij werkt het gewoon goed :)

Tel jij niet per ongeluk mensen die in je kamer zitten óók als huisgenoten?

//offtopic
Ik versla momenteel iedereen met m'n scriptje :+

[ Voor 3% gewijzigd door _wm_ op 26-05-2007 19:46 ]


Acties:
  • 0 Henk 'm!

  • Sibylle
  • Registratie: Juli 2006
  • Laatst online: 13-07-2023
jeej, i <3 contest.

Met de vorige was ik telaat, en ik vond hem maar te moeilijk.
Enige programer skills die ik heb zijn ActionScript een beetje, en C van me opleiding.
Maarjah, dat niveau was niet echt zeer hoog :P

Ik zal mijn programma maken in C++ (Borland c++ Bouwer). Nieuwe taal (iig bijna helemaal) + nieuw programma en geen ervaring. Heb er nu al 1 dag over gedaan om een .INI file goed in te lezen.
meeting.ini -> TStringList
deelnemers.ini -> structure[aantal deelnemers]

Nu het spannendste, ook daadwerkelijk iets maken wat ergens op slaat :P


Een vraagje: hoeveel rekenkracht en geheugen heeft de computer ongeveer? is het sneller dan een P4 1.8Ghz? Dan ga ik proberen keihard random te doen (natuurlijk ook op een nomale manier).
Idee zou wel leuk zijn om één core random te laten doen 30min lang, en één core wiskundig.
Als dan random>wiskunde zuigt dat wel :(

Ctrl+k


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Topicstarter
Sibylle schreef op zaterdag 26 mei 2007 @ 19:52:
Een vraagje: hoeveel rekenkracht en geheugen heeft de computer ongeveer? is het sneller dan een P4 1.8Ghz?
Waarschijnlijk wel, maar ga nergens van uit. We doen géén uitspraken over de pc waarop straks alles gerund wordt, want ik weet niet of ik rond 16 juli tijd heb om alles te draaien, en mijn collega-mods ook niet. ;)
Dan ga ik proberen keihard random te doen (natuurlijk ook op een nomale manier).
Idee zou wel leuk zijn om één core random te laten doen 30min lang, en één core wiskundig.
Als dan random>wiskunde zuigt dat wel :(
Mwah, als je 30 minuten lang steeds random oplossingen zoekt en steeds een oplossing vergelijkt met een vorige oplossing, waarbij je steeds de slechtste weggooit, dan heb je best nog een mogelijkheid om een goeie score eruit te halen. Echt standvastig is je score dan verder niet, trouwens. :P Ik zou het er niet op gokken. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Marcks
  • Registratie: April 2007
  • Laatst online: 12-09 13:37
Mijn programmaatje rekent nu met een meeting.ini van maximaal 180 personen (6*20). Gezien ik gelezen heb dat de uiteindelijke deelnemers.ini wel eens meer dan 1000 persoontjes zou kunnen bevatten, denk ik dat ik het geheel wat tempo moet geven. Op dit moment wissel ik namelijk alle deelnemers één keer met alle anderen, en kijk ik of de score verbeterd wordt. Dat zijn dus 32400 mogelijkheden, 180^2. Mede door mijn trage scoreberekening - er zijn helaas nogal wat voorwaarden - die bovendien vier keer per wissel moeten worden berekend, doe ik over dit hele rondje ongeveer 50 minuten. Uiteindelijk wil ik dit proces toch zeker tien keer laten verlopen, dus het lijkt dat ik nog flink wat werk voor de boeg heb.

//off-topic
Hmm, ik was best wel trots op mijn 90 puntjes, maar die 221 van _wm_ moet te verslaan zijn. :)

Ik veronschuldig mij bij voorbaat voor het bovenstaande.


Acties:
  • 0 Henk 'm!

  • _wm_
  • Registratie: Mei 2007
  • Laatst online: 29-04 21:51
//off-topic
Hmm, ik was best wel trots op mijn 90 puntjes, maar die 221 van _wm_ moet te verslaan zijn. :)
met de officiële testset haal ik 219...

Ik maak slechts 1 combinatie (met een paar kleine subiteraties wel) en heb nog twee huisjes leeg (waar je mensen met voorkeuren ofzo misschien neer kan zetten)... Ik kijk niet of partners bij elkaar zitten, kijk niet naar dubbele roomies... Script is gedraaid in < 1 seconde :+
Nog heel veel mogelijkheden voor optimalisatie dus :P

Als je me ingehaald hebt ga ik wel weer aan het werk ;)

//edit: script is momenteel 506 regels code, waarvan ongeveer 25% aan witregels en commentaar...
Moet er wel bijzeggen dat ik met het inlezen van de ini niet erg voorzichtig te werk ga ;)
ben eigenlijk wel benieuwd naar de lengte ed van andere scripts?

[ Voor 25% gewijzigd door _wm_ op 26-05-2007 20:24 ]


Acties:
  • 0 Henk 'm!

  • Marcks
  • Registratie: April 2007
  • Laatst online: 12-09 13:37
_wm_ schreef op zaterdag 26 mei 2007 @ 20:18:
//edit: script is momenteel 506 regels code, waarvan ongeveer 25% aan witregels en commentaar...
Moet er wel bijzeggen dat ik met het inlezen van de ini niet erg voorzichtig te werk ga ;)
ben eigenlijk wel benieuwd naar de lengte ed van andere scripts?
Circa 600 regels effectieve code heb ik nu (dus zonder witregels en commentaar). Daarbij zitten vooral veel regeltjes in het inlezen van de .ini. Dat gaat namelijk regel voor regel, waarbij het gedeelte tot en met het =-teken wordt gestript. Omslachtig, maar gelukkig geen tijdrovend proces. Bij het inlezen van de .ini's is mijn code trouwens ook niet bar defensief. Het weglaten of toevoegen van een witregel of een alternatieve volgorde van de keys zorgt al voor foutmeldingen.

Ik veronschuldig mij bij voorbaat voor het bovenstaande.


Acties:
  • 0 Henk 'm!

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
Mja ini's heb ik niet zo'n probleem mee, wat checks ingebouwd. In totaal inclusief white space 559 regels code, maar ik heb behoorlijk wat visueel erin zitten nu.

Al mijn deelnemers schrijf ik weg naar een record in een array, welke ik ook weer in een Tree kan zetten om te zien of alles goed uitgelezen is.

Zelfs als bij huisjes, als ik op update druk kan ik zien wie en waar is ingedeeld in welk huisje :)

Acties:
  • 0 Henk 'm!

  • Sibylle
  • Registratie: Juli 2006
  • Laatst online: 13-07-2023
ik heb nu zonder commentaar en witregels ongeveer 250 regels.
alleen om de .ini bestanden in te lezen, in de gewenste vormen te gieten (voor rekenen straks wel zo optimaal), en opnieuw uit te printen (voor controle met orgineel).
Uitprinten neem meeste regels in beslag.

Ik moet zeggen dat mijn code redelijk defensief is:
Spaties, tabs oid maakt niet uit. Rare tekens maakt niet uit.
Spaties in één waarde (eten=vega tar isc h) maakt niet uit (wel als de andere aan elkaar zijn, maar dan is het .ini bestand nogal corrupt want valt niet eenduidig op deze fouten te testen aangezien "kom kommer"!="komkommer").
Ik heb eigelijk nog niks gezien dat mijn inleesgedoe laat floppen of laat foutjes maken.

Iemand suggestisch misschien om te testen?

Wat ik wel erg irritant vind is dat ik voor het aanwijzen van .ini file 4 regels kwijt ben.
Ik doe het met behulp van

code:
1
2
3
4
5
6
7
8
9
10
char* directory = new char[5000];
GetCurrentDirectory(5000, directory);
strcat(directory,"\\");
strcat(directory,naam);

TIniFile *ini = new TIniFile(directory);
ini->ReadSections(namen);
delete ini;
delete [] directory;
directory=NULL;


Als ik namelijk
code:
1
TIniFile *ini = new TIniFile("//meeting.ini");
doe, of een variant. Komt hij niet terecht in de huidige folder. Zoo irritant. Duurde echt 2 uur voor ik doorhad dat mijn script wel een .ini maakte, maar die in C:\Windows zette (bij argument "meeting.ini"). Ik was 30 .ini bestanden rijker dus :P
Kreeg het niet goed, het was of windows map, of een schijf letter, nooit de huidige dir. Dus maar zo gedaan.
Ik weet niet wat windows slikt als lengte voor een dir naam, maar 5000 chars lijken mij genoeg. Of biedt iemand meer? :P

Ctrl+k


Acties:
  • 0 Henk 'm!

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
code:
1
IniPath := ExtractFilePath( Application.ExeName ) + 'deelnemers.ini';

:P

Acties:
  • 0 Henk 'm!

Verwijderd

_wm_ schreef op zaterdag 26 mei 2007 @ 19:45:
[...]


ik heb het nagekeken, en nog eens nagekeken, maar volgens mij werkt het gewoon goed :)

Tel jij niet per ongeluk mensen die in je kamer zitten óók als huisgenoten?

//offtopic
Ik versla momenteel iedereen met m'n scriptje :+
Om het je te bewijzen dat mijn opmerking wel degelijk klopte moet je volgende testsets eens bekijken.
http://willem-mulder.nl/g...a590bcdcbf03060e8a400.ini (meeting.ini)
http://willem-mulder.nl/g...e4e04a40fa905124b296e.ini (deelnemers.ini)
http://willem-mulder.nl/g.../20070526210415609924.ini (output.ini)

Als je deze 3 bestanden terug laat valideren dan zijn je bij "roomiepunten binnen het huis:" -12 als score verschijnen. Deze is echter te laag, de correcte score is -9. 3 punten hoger. En hieronder toon ik waar die 3 punten gebleven zijn.
Volgende tekst kan je exact terugvinden in bovenstaande bestanden.

[huisje1]
kamer1 = Ann,Aaron
kamer2 = Alida,Bernie
kamer3 = Brita,Are
kamer4 = Cesar,Ayrton
kamer5 = Anouschka,Cendrine

[Aaron]
partner=Ann
roomies=Ayrton,Cendrine
nietroomies=

Aaron zit met zijn partner op de kamer: +5 kamerpunten
Echter is minimum 1 van de roomies ook aanwezig in het huis: +1 huispunten (eerste verloren punt)

[Brita]
partner=
roomies=Are
nietroomies=Bernie,Cendrine

Brita zit met 1ste keus roomie op de kamer: +5 kamerpunten
Alle 2 nietroomies zitten in het huis: -4 huispunten

[Ann]
partner=Aaron
roomies=Cendrine,Bernie,Brita
nietroomies=

Aaron zit met haar partner op de kamer: +5 kamerpunten
Echter is minimum 1 van de roomies ook aanwezig in het huis: +1 huispunten (tweede verloren punt)

[Cendrine]
partner=
roomies=
nietroomies=Anouschka

Niet roomie in dezelfde kamer: -5 kamerpunten

[Are]
partner=Alida
roomies=Brita,Ayrton,Anouschka
nietroomies=Cesar,Alida

1ste keus roomie: +5 kamerpunten
2 nietroomies in huis: -4 huispunten

[Cesar]
partner=
roomies=
nietroomies=Are,Brita

2 nietroomies in huis: -4 huispunten

[Anouschka]
partner=
roomies=Bernie,Cendrine
nietroomies=

2de keus roomie op kamer: +3 kamerpunten

[Bernie]
partner=
roomies=Alida,Are,Anouschka
nietroomies=

1ste keus roomie op kamer: +5 kamerpunten

[Ayrton]
partner=
roomies=Are
nietroomies=

Zijn 1ste keus roomie zit wel in het huis: +1 kamerpunten (3de verloren punt)


Dit als bewijs van een onnauwkeurigheid in de berekening. En ik denk dat er geen fouten in de hier gevolgde denkwijze zitten.
Zo kun je zoeken waar het foutje zit, want een publieke validator en ranking die oncorrect de score berekent, is niet echt handig. ;)

Happy bughunting. :)

Acties:
  • 0 Henk 'm!

  • _wm_
  • Registratie: Mei 2007
  • Laatst online: 29-04 21:51
Verwijderd schreef op zaterdag 26 mei 2007 @ 21:41:
[...]

Dit als bewijs van een onnauwkeurigheid in de berekening. En ik denk dat er geen fouten in de hier gevolgde denkwijze zitten.
Zo kun je zoeken waar het foutje zit, want een publieke validator en ranking die oncorrect de score berekent, is niet echt handig. ;)

Happy bughunting. :)
Als ik de bestanden laat valideren krijg ik gewoon -9 bij de in-huis-roomie-punten?

En nee, ik heb écht niks veranderd sinds dat ik je bericht zag :)

Misschien is het er een keer tussendoorgeschoten toen een van de mods een regeltje heen en weer wijzigde?

Ik krijg met jouw set 16 punten... Is dat correct?

Acties:
  • 0 Henk 'm!

  • SysRq
  • Registratie: December 2001
  • Laatst online: 16:28
Megamind schreef op zaterdag 26 mei 2007 @ 21:34:
code:
1
IniPath := ExtractFilePath( Application.ExeName ) + 'deelnemers.ini';

:P
Hmmm:
Delphi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
var
  path : String;
  [...]
begin
  path := ExtractFilePath(ParamStr(0));
  Meetingfile     := path + 'meeting.ini';
  Deelnemersfile  := path + 'deelnemers.ini';
  Outputfile      := path + 'output.ini';

  // Controleren of ini-bestanden aanwezig zijn
  if not FileExists(Meetingfile) then
    msg := 'Bestand ' + Meetingfile + ' niet gevonden!';
  if not FileExists(Deelnemersfile) then
    msg := msg + 'Bestand ' + Deelnemersfile + ' niet gevonden!';
  if FileExists(Outputfile) then
    msg := msg + 'Bestand ' + Outputfile + ' bestaat al!';

  // Inlezen meetingfile
  IniFile := TIniFile.create(Meetingfile);
  try
    with IniFile do
    begin
      try
        aantalHuisjes :=  ReadInteger('meeting','aantalhuisjes',0);
        aantalinvalidenhuisjes := ReadInteger('meeting','aantalinvalidenhuisjes',0);
        personenperhuis := ReadInteger('meeting','personenperhuis',0);
      except
        on e:exception do
        begin
          msg := 'Fout opgetreden: ' + e.message;
          Result := False;
        end;
      end;
    end;
  finally
    FreeAndNil(IniFile); // Geen IniFile.free, want IniFile wordt nog een keer gebruikt.
  end;

Enzovoorts. Het is heel wat meer code, maar fouten worden wel opgevangen. :)

-


Acties:
  • 0 Henk 'm!

Verwijderd

_wm_ schreef op zaterdag 26 mei 2007 @ 22:00:
[...]


Als ik de bestanden laat valideren krijg ik gewoon -9 bij de in-huis-roomie-punten?

En nee, ik heb écht niks veranderd sinds dat ik je bericht zag :)

Misschien is het er een keer tussendoorgeschoten toen een van de mods een regeltje heen en weer wijzigde?

Ik krijg met jouw set 16 punten... Is dat correct?
Yup, nu werkt het correct. En ik had het resultaat van jouw validator kopie plak in excel gedaan, dus het was geen fata morgana.
Maar nu alles goed werkt, kunnen we ons terug met hogere scores gaan bezighouden.

Acties:
  • 0 Henk 'm!

  • _wm_
  • Registratie: Mei 2007
  • Laatst online: 29-04 21:51
Verwijderd schreef op zaterdag 26 mei 2007 @ 22:06:
[...]


Yup, nu werkt het correct. En ik had het resultaat van jouw validator kopie plak in excel gedaan, dus het was geen fata morgana.
Maar nu alles goed werkt, kunnen we ons terug met hogere scores gaan bezighouden.
jup :) en daar sta ik nog steeds mee bovenaan >:)

nog sorry voor de, waarschijnlijk, fouten van mijn kant dan :)

en bedankt voor je oplettendheid! Nu weet ik in ieder geval ook zeker dat het correct werkt... 8)

Heb ondertussen ook nog wat andere checks ingebouwd (of je niet te veel huisjes gebruikt, of te veel kamers per huis, of te veel invalidenhuisjes)

Ga zometeen nog even wat variaties op de officiële test proberen, en kijken hoe hoog ik zo even snel kan komen. Daarna ga ik wat anders doen ;)
(zo'n contest vreet tijd, tot diep in de nacht :O :+ )

[ Voor 3% gewijzigd door _wm_ op 26-05-2007 22:10 ]


Acties:
  • 0 Henk 'm!

  • _wm_
  • Registratie: Mei 2007
  • Laatst online: 29-04 21:51
zo, klaar dit weekeinde... :)

264 punten op de officiële testset is voorlopig eventjes mijn max...

Heb overigens ook nog een fout uit de validator gehaald die lege huisjes punten toekende. En alles nog een keer doorlopen.. Kon niks meer vinden.
@Mods: kan iemand niet even een set overnemen en kijken of de gegeven score klopt met jullie validator ;)

Acties:
  • 0 Henk 'm!

  • Marcks
  • Registratie: April 2007
  • Laatst online: 12-09 13:37
_wm_ schreef op zaterdag 26 mei 2007 @ 23:10:
zo, klaar dit weekeinde... :)

264 punten op de officiële testset is voorlopig eventjes mijn max...

Heb overigens ook nog een fout uit de validator gehaald die lege huisjes punten toekende. En alles nog een keer doorlopen.. Kon niks meer vinden.
@Mods: kan iemand niet even een set overnemen en kijken of de gegeven score klopt met jullie validator ;)
Indrukwekkend! Wordt het overigens beschouwd als cheaten om andermans output.ini's in te laden en een klein beetje te verbeteren? >:)

Ik veronschuldig mij bij voorbaat voor het bovenstaande.


Acties:
  • 0 Henk 'm!

  • EdwinG
  • Registratie: Oktober 2002
  • Laatst online: 12-09 20:53
RobIII schreef op vrijdag 25 mei 2007 @ 17:10:
[...]

Dat wel (staat niets over in de specs, dus AFAIK wel), maar de é gaat goed en de ë niet :P ...dat was mijn punt ;)
Foute headers denk ik (geen idee welke charset aangegeven wordt, de meeste tekens heb ik vervangen door hun html code ( &eamp; )
Blijkbaar ben ik ë vergeten.

Bezoek eens een willekeurige pagina


Acties:
  • 0 Henk 'm!

  • _wm_
  • Registratie: Mei 2007
  • Laatst online: 29-04 21:51
Marcks schreef op zaterdag 26 mei 2007 @ 23:39:
[...]


Indrukwekkend! Wordt het overigens beschouwd als cheaten om andermans output.ini's in te laden en een klein beetje te verbeteren? >:)
hehe... :+

nadeel is dat je dan wel hoge verwachtingen schept en met de uiteindelijke test niet een output.ini van iemand anders tot je beschikking hebt :P

Acties:
  • 0 Henk 'm!

  • _js_
  • Registratie: Oktober 2002
  • Laatst online: 18-08 21:31
Er staat niet in de regels dat je niet op de officiële computer mag zoeken naar andere output.ini's om die te optimaliseren. })

Dan moet je wel hopen dat jouw programma niet als eerste wordt gerund op de jury computer.

Acties:
  • 0 Henk 'm!

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09 23:18

djc

Ik heb nu 180 regels Python die redelijk voorzichtig inlezen, flink wat structuur aanbrengen in de gegevens en wat checks doen op de gegevens (bijv. dat er geen asymmetrische partners zijn).

Het viel me net nog wel op dat partners dus eigenlijk niet beter zijn dan de eerste roomie. Dat betekent dus dat je, als je alle partners bij elkaar gooit, direct al in een soort van lokaal optimum terecht komt.

Toch jammer.

Rustacean


Acties:
  • 0 Henk 'm!

  • Darude1234
  • Registratie: Augustus 2003
  • Laatst online: 06-09 12:57
Moest het wel 10x lezen voordat ik helemaal doorhad wat nou precies de opdracht was.
Heb voor mezelf maar even wat UML-modellen gemaakt om van het geheel een wat duidelijker beeld te krijgen ;)

Ik zat alleen nog wel met de volgende 2 dingen:

- Het is m.u.v. invalide niet verplicht de personen met een voorkeur per se in een huisje te zetten wat die voorkeur heeft, maar het levert wel bonuspunten op.
- Als een persoon bij iemand niet in het huisje wil dan mogen die niet bij elkaar in het huisje zitten.

Wat nou als er 2 invaliden zijn en die willen niet bij elkaar in het huisje? Moet je dan voor 2 invalide-huisjes zorgen?

Acties:
  • 0 Henk 'm!

  • Slonzo
  • Registratie: Mei 2007
  • Niet online

Slonzo

Taarsidath-an Halsaam

Als 2 invaliden niet bij elkaar willen, 'moet' je ze inderdaad in een apart huisje zetten. Wel op voorwaarde dat je genoeg invalidenhuisjes hebt natuurlijk...

Post je die UML-shema's dan ook 'ns? :+

*EDIT* Ik heb trouwens al +/-800 regels code... 8)7

[ Voor 24% gewijzigd door Slonzo op 27-05-2007 03:18 ]


Acties:
  • 0 Henk 'm!

  • mnielsm
  • Registratie: September 2002
  • Laatst online: 19:57
Nog even een vraag/opmerking met betrekking tot de officiele testset.

Diverse deelnemers met als voorkeur organisatie hebben roomies die niet organisatie zijn.
Hoe kan je die nu in hetzelfde huis zetten als in de startpost staat van:
  • Leden van de organisatie mogen alleen bij andere leden van de organisatie ingedeeld worden.
    Onder geen beding mogen er mensen met een andere voorkeur in hetzelfde huis met een organisator ingedeeld worden. Wèl mogen er meerdere "organisatiehuisjes" zijn, als niet alle organisatoren in één huisje passen.
Of moet je dit soort roomies gewoon negeren omdat het niet mogelijk is?

Voor het eenvoudigste zoeken naar alle chinese webshops: www.chinapricefinder.com


Acties:
  • 0 Henk 'm!

  • ArtyShock
  • Registratie: Juli 2002
  • Laatst online: 05-09 13:45
Ik ga me denk ik ook eens storten op deze contest. Nu zou ik wèl voldoende tijd moeten hebben om m'n programmaatje af te krijgen. Ik zei dat ik misschien voor C++ vanwege de snelheid zou gaan, maar dit probleem lijkt me een stuk minder rekenintensief dan de vorige, dus ik denk dat ik nogmaals voor C# ga.

Wat me opvalt is dat deze contest minder precies omschreven is dan de vorige. Terwijl deze probleemstelling juist veel meer staat of valt bij een zeer precieze omschrijving. Ik ga eerst maar eens de plumbing in elkaar timmeren en hoop dat er daarna consensus is over de score van de randgevallen. ;)

Acties:
  • 0 Henk 'm!

  • Arjan
  • Registratie: Juni 2001
  • Niet online

Arjan

copyright is wrong

Ik ben ook begonnen, maar ik moet zeggen dat het lijstje regels dit keer toch wel erg stevig is :P

Is er trouwens een limiet aan de hoeveelheid geheugen die de applicatie mag alloceren tijdens de run?

oprecht vertrouwen wordt nooit geschaad


Acties:
  • 0 Henk 'm!

  • Marcks
  • Registratie: April 2007
  • Laatst online: 12-09 13:37
Zo, na een flinke dosis herschrijven en hersenkraken, heb ik mijn algoritme een klein beetje sneller gemaakt. Gisteravond heeft mijn pc negen uren staan rekenen om een score van 261 te halen, nu zit ik al op 268 in twee minuten!

Voorafgaand aan het eerste optimalisatierondje krijg ik echter nog steeds een start-indeling met een score van rond de 90. Ik zal vanmiddag eens kijken of ik dat nog met enkele extra voorwaarden richting 200 kan brengen, zodat mijn optimalisatie een beetje ontlast wordt.

edit:
Grotere testsets blijken het programma (zoals verwacht) exponentiëel te vertragen, maar na twee iteraties heb ik toch mooi even 363 punten op de officiële testset! 8)

[ Voor 15% gewijzigd door Marcks op 27-05-2007 13:56 ]

Ik veronschuldig mij bij voorbaat voor het bovenstaande.


Acties:
  • 0 Henk 'm!

Verwijderd

@wm ....
welke regels zitten er in je 'voorkeurpunten:' , als het is wat ik denk (de éérste 2 regels) , klopt je telling niet.

(zie:

hash:23f4627befecbc8339d51b6cf9793fc34a713600d50f46f1f7b40f93be87be5b, meeting.ini , deelnemers.ini , output.ini ] : 339

Alle 100 deelnemers in organisatie...,
20 huisjes met 3 kamers ....
in output: 2 lege plekken (in verschillende huisjes), dus 15 huisjes volledig gevuld.

=> zou moeten worden (15*2)+100 (iedereen zit bij zijn eigen voorkeur)= 130, ipv 120

)

;) tenzij ik de regels verkeert begrijp natuurlijk 8)7

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Topicstarter
mnielsm schreef op zondag 27 mei 2007 @ 11:46:
Of moet je dit soort roomies gewoon negeren omdat het niet mogelijk is?
:Y

Eigenlijk is het een foutje dat ze er überhaupt zo in staan, maar het kan geen kwaad om ze te negeren. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • JokerLash
  • Registratie: Februari 2002
  • Laatst online: 16-04 11:03
Ik heb een vraagje voor de andere programmeur's hebben jullie ook problemen met de Section [André] of hebben jullie een eigen manier ontwikkeld om de ini files uit te lezen, want bij gebruik van verschillende INI classes voor C# wordt André bij mij ingelezen als Andr?.

Dit omdat volgens de specificaties van ini-files geen é mag voorkomen in een section.

Moet ik nou rekening houden met de standaard of een eigen uitlees methode maken voor de ini bestanden?

Acties:
  • 0 Henk 'm!

  • mnielsm
  • Registratie: September 2002
  • Laatst online: 19:57
JokerLash schreef op zondag 27 mei 2007 @ 14:11:
Ik heb een vraagje voor de andere programmeur's hebben jullie ook problemen met de Section [André] of hebben jullie een eigen manier ontwikkeld om de ini files uit te lezen, want bij gebruik van verschillende INI classes voor C# wordt André bij mij ingelezen als Andr?.

Dit omdat volgens de specificaties van ini-files geen é mag voorkomen in een section.

Moet ik nou rekening houden met de standaard of een eigen uitlees methode maken voor de ini bestanden?
Ik ben bezig in vb.net en heb persoonlijk geen problemen met dit soort namen, maar ik heb ook een zelfgemaakt stuk wat de ini file's inleest. (ivm extra's zodat het programma sneller draait)

Voor het eenvoudigste zoeken naar alle chinese webshops: www.chinapricefinder.com


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Topicstarter
JokerLash schreef op zondag 27 mei 2007 @ 14:11:
Ik heb een vraagje voor de andere programmeur's hebben jullie ook problemen met de Section [André] of hebben jullie een eigen manier ontwikkeld om de ini files uit te lezen, want bij gebruik van verschillende INI classes voor C# wordt André bij mij ingelezen als Andr?.
André zorgt ook altijd voor problemen. :( :+
Moet ik nou rekening houden met de standaard of een eigen uitlees methode maken voor de ini bestanden?
Alles wat in de testset voorkomt, moet ook in jouw programma werken. Dat betekent in dit geval dat 8-bits ASCII ook ondersteund moet worden en je dus een oplossing moet verzinnen die daarmee overweg kan. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
Mijn leest ook gewoon André uit, maar MOET je het dan opslaan als Andre volgens specs? Dus de validator van de mod maakt van André ook Andre?

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
-NMe- schreef op zondag 27 mei 2007 @ 14:19:
Alles wat in de testset voorkomt, moet ook in jouw programma werken. Dat betekent in dit geval dat 8-bits ASCII ook ondersteund moet worden en je dus een oplossing moet verzinnen die daarmee overweg kan. :)
Noem nou gewoon zo spcifiek mogelijk welke character set/encoding gebruikt wordt. Het is niet zomaar extended ASCII, de é komt overeen met het byte zoals in Latin1. De encoding voor in- en output moet gewoon duidelijk gedefinieerd zijn. Char. encoding shizzle moet je niet gokken maar weten.

{signature}


Acties:
  • 0 Henk 'm!

  • Marcks
  • Registratie: April 2007
  • Laatst online: 12-09 13:37
Megamind schreef op zondag 27 mei 2007 @ 14:41:
Mijn leest ook gewoon André uit, maar MOET je het dan opslaan als Andre volgens specs? Dus de validator van de mod maakt van André ook Andre?
Ik zou daar niet van uit gaan. Het is theoretisch namelijk best mogelijk dat er een André en een Andre in de uiteindelijke set voor gaat komen. Intern maakt het overigens niet eens zoveel uit dat André ingelezen wordt als Andr?, tenzij er ook een Andrè ofzo voorkomt, maar de validator moet natuurlijk wel de persoon uit deelnemers.ini kunnen koppelen aan output.ini.

Ik veronschuldig mij bij voorbaat voor het bovenstaande.


Acties:
  • 0 Henk 'm!

Verwijderd

JokerLash schreef op zondag 27 mei 2007 @ 14:11:
Ik heb een vraagje voor de andere programmeur's hebben jullie ook problemen met de Section [André] of hebben jullie een eigen manier ontwikkeld om de ini files uit te lezen, want bij gebruik van verschillende INI classes voor C# wordt André bij mij ingelezen als Andr?.

Dit omdat volgens de specificaties van ini-files geen é mag voorkomen in een section.

Moet ik nou rekening houden met de standaard of een eigen uitlees methode maken voor de ini bestanden?
Ik heb hetzelfde probleem ook gehad. Ik gebruik NINI voor het inlezen en wegschrijven. De oplossing is de volgende: geef bij aanmaak van een nieuwe inireader geen gewone string mee met het filepath maar maak eerst een StreamReader voor dat bestand met als parameters de bestandsnaam en Encoding.Default

Daarna werkt alles zoals het moet.
Hopelijk werkt het voor jou ook.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Topicstarter
Megamind schreef op zondag 27 mei 2007 @ 14:41:
Mijn leest ook gewoon André uit, maar MOET je het dan opslaan als Andre volgens specs? Dus de validator van de mod maakt van André ook Andre?
Nee, André != Andre. Ga niet in de strings lopen editen en laat ze gewoon zoals ze zijn. :)
Voutloos schreef op zondag 27 mei 2007 @ 14:47:
[...]
Noem nou gewoon zo spcifiek mogelijk welke character set/encoding gebruikt wordt. Het is niet zomaar extended ASCII, de é komt overeen met het byte zoals in Latin1. De encoding voor in- en output moet gewoon duidelijk gedefinieerd zijn. Char. encoding shizzle moet je niet gokken maar weten.
"Gewoon" standaard ANSI textfiles. Tekens die voor mogen komen zijn alle tekens die hier groen zijn. Duidelijk genoeg? ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • bomberboy
  • Registratie: Mei 2007
  • Laatst online: 20:08

bomberboy

BOEM!

Hallo _wm_ en Vekking,

Ik ben momenteel bezig met mijn eigen validator en ben deze aan het vergelijken met de online versie van _wm_ maar er zitten nog wat verschillen in. Ik ben er nog niet helemaal uit waar de bug juist zit (vermoedelijk bij mij), maar dit even terzijde.

Vekking gaf hier onderstaande voorbeeldje:
Verwijderd schreef op zaterdag 26 mei 2007 @ 21:41:
[...]


Om het je te bewijzen dat mijn opmerking wel degelijk klopte moet je volgende testsets eens bekijken.
http://willem-mulder.nl/g...a590bcdcbf03060e8a400.ini (meeting.ini)
http://willem-mulder.nl/g...e4e04a40fa905124b296e.ini (deelnemers.ini)
http://willem-mulder.nl/g.../20070526210415609924.ini (output.ini)
...
En dat zou 16 moeten uitkomen als score. Dat gebeurt ook indien ik deze files gewoon upload en laat testen, maar de score vermeld bij bovengenoemde output-bestand is echter 13.

Ik vermoed dat er dus ergens nog eens iets veranderd is aan de online evaluator tussen het uploaden enzo door?
Zoja, kloppen alle resultaten die online staan nog? (ik vermoed van niet).

Het is gewoon heel verwarrend wanneer ik aan bughunten ben in mijn versie :)

Hetzelfde geldt trouwens voor testset met hash hash:23f4627befecbc8339d51b6cf9793fc3c4514d97a53c1ee50fa5b99475d37323
Daar kom je nu een negatieve score uit omdat er 26 niet geplaatst zijn, maar de topscore die nog geregistreerd is, is 184.

En nog even een andere opmerking. Wanneer het voorkeurveld leeg gelaten wordt (ipv expliciet "geen") te schrijven wordt dit niet als dusdanig geïnterpreteerd door jouw validator. (Ik doe zelf een fallback naar "geen" indien er niets ingevuld is).

groetjes
[edit: voorbeeldje van score 184 toegevoegd]

[ Voor 8% gewijzigd door bomberboy op 27-05-2007 15:21 ]


Acties:
  • 0 Henk 'm!

  • Zr40
  • Registratie: Juli 2000
  • Niet online

Zr40

Moderator General Chat

heeft native IPv6

-NMe- schreef op zondag 27 mei 2007 @ 15:05:
"Gewoon" standaard ANSI textfiles. Tekens die voor mogen komen zijn alle tekens die hier groen zijn. Duidelijk genoeg? ;)
Voor de duidelijkheid, dat is Windows-1252. :)

Acties:
  • 0 Henk 'm!

  • Slonzo
  • Registratie: Mei 2007
  • Niet online

Slonzo

Taarsidath-an Halsaam

Verwijderd schreef op zondag 27 mei 2007 @ 15:00:
[...]
Ik heb hetzelfde probleem ook gehad. Ik gebruik NINI voor het inlezen en wegschrijven.
...
Hopelijk werkt het voor jou ook.
Inderdaad, zo heb ik het ook gedaan met Nini. Jammer genoeg heb ik wel gemerkt dat Nini hard crasht als je bvb een [, ] of = teken weglaat, dus ik denk dat ik ff de source van SourceForge ga plukken en wat veranderingen ga doorvoeren :/

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
-NMe- schreef op zondag 27 mei 2007 @ 15:05:
[...]

Nee, André != Andre. Ga niet in de strings lopen editen en laat ze gewoon zoals ze zijn. :)
Strings laten as is, is triviaal en het wijzigen is sowieso niet nodig. Het is alleen leuk als je, mocht je die wens hebben, je string goed kan weergeven in je programma. :)
"Gewoon" standaard ANSI textfiles. Tekens die voor mogen komen zijn alle tekens die hier groen zijn. Duidelijk genoeg? ;)
Nu wel ja. ;) Maar daar staat niet zomaar 'gewoon' ANSI.
Zr40 schreef op zondag 27 mei 2007 @ 15:19:
[...]
Voor de duidelijkheid, dat is Windows-1252. :)
Precies, zo heet het blijkbaar gebruikte beestje. ANSI != Windows-1252.

Ja, char. encoding zut is saai en stom, maar als je het nou netjes concreet zegt is alles meteen duidelijk. Maar goed, laten we het over algoritmes hebben ipv die suffe ini files. :P

{signature}


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Topicstarter
bomberboy schreef op zondag 27 mei 2007 @ 15:17:
En nog even een andere opmerking. Wanneer het voorkeurveld leeg gelaten wordt (ipv expliciet "geen") te schrijven wordt dit niet als dusdanig geïnterpreteerd door jouw validator. (Ik doe zelf een fallback naar "geen" indien er niets ingevuld is).
Dat is netjes, maar hoeft niet. Voor de categorie "meest defensieve code" is het leuk als je er rekening mee houdt, want dat levert je punten op, maar in de uiteindelijke run wordt alles gewoon netjes volgens specificatie ingevuld. :)
Voutloos schreef op zondag 27 mei 2007 @ 15:29:
Precies, zo heet het blijkbaar gebruikte beestje. ANSI != Windows-1252.
Ik wist de juiste getalletjes niet uit mijn hoofd en mijn editor gaf gewoon ANSI aan. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • JokerLash
  • Registratie: Februari 2002
  • Laatst online: 16-04 11:03
Verwijderd schreef op zondag 27 mei 2007 @ 15:00:
[...]


Ik heb hetzelfde probleem ook gehad. Ik gebruik NINI voor het inlezen en wegschrijven. De oplossing is de volgende: geef bij aanmaak van een nieuwe inireader geen gewone string mee met het filepath maar maak eerst een StreamReader voor dat bestand met als parameters de bestandsnaam en Encoding.Default

Daarna werkt alles zoals het moet.
Hopelijk werkt het voor jou ook.
Bedankt voor je tip, zo werkt het inderdaad!!!

Acties:
  • 0 Henk 'm!

  • Marcks
  • Registratie: April 2007
  • Laatst online: 12-09 13:37
Ik dacht dat mijn manier omslachtig was, maar als ik zo naar dit geneuzel over ini-files kijk, heb ik het nog best recht-toe-recht-aan aangepakt.

QBasic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
OPEN "deelne~1.ini" FOR INPUT AS #1
DO
 INPUT #1, n$
 INPUT #1, v$
 INPUT #1, R1$
 INPUT #1, R2$
   IF LEFT$(R2$, 8) = "partner=" THEN p$ = R2$: roomies = 1: GOTO Partner
 INPUT #1, R3$
   IF LEFT$(R3$, 8) = "partner=" THEN p$ = R3$: roomies = 2: GOTO Partner
 INPUT #1, p$
Partner:
 INPUT #1, NR1$
 INPUT #1, NR2$
   IF LEFT$(NR2$, 5) = "eten=" THEN e$ = NR2$: nietroomies = 1: GOTO Eten
 INPUT #1, NR3$
   IF LEFT$(NR3$, 5) = "eten=" THEN e$ = NR3$: nietroomies = 2: GOTO Eten
 INPUT #1, e$
Eten:
 IF NOT EOF(1) THEN INPUT #1, witregel$
LOOP UNTIL EOF(1)
CLOSE #1

Ik veronschuldig mij bij voorbaat voor het bovenstaande.


Acties:
  • 0 Henk 'm!

Verwijderd

Had vanmiddag toch niks te doen en aangezien ik ook nog geen duidelijk idee heb hoe ik het aan ga pakken heb ik mijn programma maar een soort tekeningetje laten bouwen:

Afbeeldingslocatie: http://aycu33.webshots.com/image/17192/2005976093663993335_th.jpgAfbeeldingslocatie: http://aycu22.webshots.com/image/17701/2000552755964321140_th.jpgAfbeeldingslocatie: http://aycu29.webshots.com/image/17468/2000540982595103798_th.jpgAfbeeldingslocatie: http://aycu27.webshots.com/image/15306/2000533642704177574_th.jpg

vlnr: alleen met partners, alleen 1e roomies, alleen partners & 1e (niet) roomies, en met partners + 1,2,3 (niet)roomies

[ Voor 62% gewijzigd door Verwijderd op 27-05-2007 17:46 . Reden: thumbnails & meer plaatjes ]


Acties:
  • 0 Henk 'm!

Verwijderd

Mag je er vanuit gaan dat er geen deelnemer is die 'geen' als nickname heeft :+

;) als ik het moest testen zal ik meteen een deelnemer geen noemen >:)

Acties:
  • 0 Henk 'm!

  • Marcks
  • Registratie: April 2007
  • Laatst online: 12-09 13:37
Verwijderd schreef op zondag 27 mei 2007 @ 16:27:
Mag je er vanuit gaan dat er geen deelnemer is die 'geen' als nickname heeft :+

;) als ik het moest testen zal ik meteen een deelnemer geen noemen >:)
Tja, op die fiets kun je nog wel meer rotgeintjes uithalen. Ik heb een keer tientallen bedden opgevuld met de persoon 'Niet van toepassing'. Heb me toch een poosje af zitten vragen waarom die 44 deelnemers niet geplaatst konden worden... 8)7

Ik veronschuldig mij bij voorbaat voor het bovenstaande.


Acties:
  • 0 Henk 'm!

Verwijderd

Goeiedag,

Ik ben hier nieuw en wil die programmeerwedstrijd wel eens proberen.
Programmeren doe ik in java.

Is er ergens een pagina waar bijgehouden wordt wat het beste resultaat is van de testset ?

Fred

Acties:
  • 0 Henk 'm!

  • Dricus
  • Registratie: Februari 2002
  • Laatst online: 17:27

Dricus

ils sont fous, ces tweakers

Hey allemaal,

Leuke contest! Count me in. Ik hoop dat ik nu (in tegenstelling tot contest 2) iets echt af kan gaan maken.

Aangezien ik nog steeds een beetje moeite heb met het doorkrijgen van de score telling, heb ik hiervoor maar even een UML Activity Diagram gemaakt. Het schema is vrij groot, maar volgens mij redelijk leesbaar. Kan iemand van de mods misschien even kijken of ik alles goed begrepen heb?

Klik hier voor het plaatje.

[update]Plaatje bijgewerkt, het bevatte nog een paar kleine foutjes.[/update]

[ Voor 7% gewijzigd door Dricus op 27-05-2007 17:24 ]

Stel niet uit tot morgen wat je vandaag nog tot morgen kunt uitstellen...


Acties:
  • 0 Henk 'm!

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 08-09 11:33
Verwijderd schreef op zondag 27 mei 2007 @ 16:25:
Had vanmiddag toch niks te doen en aangezien ik ook nog geen duidelijk idee heb hoe ik het aan moet gaan pakken heb ik mijn programma maar een soort tekeningetje laten bouwen:

http://img150.imageshack.us/img150/6461/contestpoo5.th.jpg

wordt wel gelijk een stuk ingewikkelder met roomies en nietroomies erbij:

http://img136.imageshack.us/img136/6518/contestpr1n1kv6.th.jpg
Dat is wel een heel handige visuele manier om het probleem te bekijken (dankje daarvoor) maar nu al die streepjes bij elkaar krijgen wordt een probleem (btw de niet geplaatsten waren voorkeur=geen?)

~ Mijn prog blog!


Acties:
  • 0 Henk 'm!

  • xos
  • Registratie: Januari 2002
  • Laatst online: 12-09 12:41

xos

@_wm_, kan je misschien een optie inbouwen dat je met een checkbox kan aangeven dat je de standaard testset die RobIII heeft gemaakt gebruikt? Op die manier hoeven wij niet telkens de deelnemers.ini en meeting.ini te uploaden en het spaart jou ook wat dataverkeer uit.

Acties:
  • 0 Henk 'm!

Verwijderd

Slonzo schreef op zondag 27 mei 2007 @ 15:20:
[...]

Inderdaad, zo heb ik het ook gedaan met Nini. Jammer genoeg heb ik wel gemerkt dat Nini hard crasht als je bvb een [, ] of = teken weglaat, dus ik denk dat ik ff de source van SourceForge ga plukken en wat veranderingen ga doorvoeren :/
Dan vang je toch die exception op en geef je als meldig dat er een fout in zit. Zelfs de nini exception geeft zelfs nog aan wat het probleem is.

Er worden bij xml niet voor niets validatieschema's aan gekoppeld. En is die nog maar 1 teken verschillend van het schema dan weigert die dienst. Is zoals het moet zijn. Structuur moet correct zijn en dan kun je zaken beginnen negeren die inhoudelijk niet correct zijn.
Maar structuurfouten zou je nooit mogen tolereren.

Acties:
  • 0 Henk 'm!

Verwijderd

MrHuge schreef op zondag 27 mei 2007 @ 17:21:
Hey allemaal,

Leuke contest! Count me in. Ik hoop dat ik nu (in tegenstelling tot contest 2) iets echt af kan gaan maken.

Aangezien ik nog steeds een beetje moeite heb met het doorkrijgen van de score telling, heb ik hiervoor maar even een UML Activity Diagram gemaakt. Het schema is vrij groot, maar volgens mij redelijk leesbaar. Kan iemand van de mods misschien even kijken of ik alles goed begrepen heb?

Klik hier voor het plaatje.

[update]Plaatje bijgewerkt, het bevatte nog een paar kleine foutjes.[/update]
Mooi en duidelijk schema. Maar er zit nog 1 foutje in. Namelijk als een partner in dezelfde kamer zit, moet je ook nog controleren of er 1 van de roomie's in het huis zit. Zoja dan +1.

Acties:
  • 0 Henk 'm!

  • Slonzo
  • Registratie: Mei 2007
  • Niet online

Slonzo

Taarsidath-an Halsaam

Verwijderd schreef op zondag 27 mei 2007 @ 17:56:[...]
Dan vang je toch die exception op en geef je als meldig dat er een fout in zit. Zelfs de nini exception geeft zelfs nog aan wat het probleem is.

Er worden bij xml niet voor niets validatieschema's aan gekoppeld. En is die nog maar 1 teken verschillend van het schema dan weigert die dienst. Is zoals het moet zijn. Structuur moet correct zijn en dan kun je zaken beginnen negeren die inhoudelijk niet correct zijn.
Maar structuurfouten zou je nooit mogen tolereren.
De structuur zou inderdaad correct moeten zijn, maar de vraag is of dat effectief zo zal zijn... :X
Zou wel heel jammer zijn moest er opzettelijk een fout lijntje instaan, en dat je hele programma (waar uren/dagen/weken werk inzit) daardoor dan dienst weigert ipv gewoon verder te gaan met de data die je er wél correct kan uithalen...

Acties:
  • 0 Henk 'm!

Verwijderd

therat10430 schreef op zondag 27 mei 2007 @ 17:42:
[...]


Dat is wel een heel handige visuele manier om het probleem te bekijken (dankje daarvoor) maar nu al die streepjes bij elkaar krijgen wordt een probleem (btw de niet geplaatsten waren voorkeur=geen?)
Inderdaad, de deelnemers die niet in een groep staan hebben als voorkeur "geen". (deze zijn overigens gewoon random neergekwakt). Ik heb de post even bijgewerkt met wat meer plaatjes. Allemaal zijn ze gemaakt met de officiële testset.

Het valt me wel op dat er ook nog aardig wat roomies/nietroomies zijn tussen organisators en niet-organisators, terwijl er in de TS wordt aangegeven dat organisators alleen met andere organisators in een huisje mogen. Is de testset nu fout of hoort dit zo?

Acties:
  • 0 Henk 'm!

  • JokerLash
  • Registratie: Februari 2002
  • Laatst online: 16-04 11:03
-NMe- schreef op zondag 27 mei 2007 @ 15:05:
[...]

Nee, André != Andre. Ga niet in de strings lopen editen en laat ze gewoon zoals ze zijn. :)

[...]

"Gewoon" standaard ANSI textfiles. Tekens die voor mogen komen zijn alle tekens die hier groen zijn. Duidelijk genoeg? ;)
Dus er mag ook een , voorkomen in een username, dat is dan wel mooi pech hebben omdat de roomies en niet roomies gescheiden worden door een ,

Acties:
  • 0 Henk 'm!

  • Dricus
  • Registratie: Februari 2002
  • Laatst online: 17:27

Dricus

ils sont fous, ces tweakers

Verwijderd schreef op zondag 27 mei 2007 @ 18:01:
Mooi en duidelijk schema. Maar er zit nog 1 foutje in. Namelijk als een partner in dezelfde kamer zit, moet je ook nog controleren of er 1 van de roomie's in het huis zit. Zoja dan +1.
Thanx!
Ik heb het schema bijgewerkt. Ik had dat stukje in de specs wel gezien, maar vergeten het in het schema op te nemen. Bij deze :).

Klik hier voor het plaatje. Als je nog het oude plaatje krijgt, doe dan ff F5 om te refreshen, dan heb je de goede.

Stel niet uit tot morgen wat je vandaag nog tot morgen kunt uitstellen...


Acties:
  • 0 Henk 'm!

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09 23:18

djc

MrHuge schreef op zondag 27 mei 2007 @ 19:06:
Thanx!
Ik heb het schema bijgewerkt. Ik had dat stukje in de specs wel gezien, maar vergeten het in het schema op te nemen. Bij deze :).
Prettig schema!

Ik snap alleen niet helemaal waarom je in het gedeelte over roomies/partner begint over de roomies van de partner. Voor de partner moet je toch eigenlijk dat hele gedeelte nog een keer doorlopen? Of krijg je maar een keer per stel (van persoon + eerste roomie of van persoon + partner) de bonus van +5?

Rustacean


Acties:
  • 0 Henk 'm!

  • Dricus
  • Registratie: Februari 2002
  • Laatst online: 17:27

Dricus

ils sont fous, ces tweakers

Manuzhai schreef op zondag 27 mei 2007 @ 19:20:
Prettig schema!

Ik snap alleen niet helemaal waarom je in het gedeelte over roomies/partner begint over de roomies van de partner. Voor de partner moet je toch eigenlijk dat hele gedeelte nog een keer doorlopen? Of krijg je maar een keer per stel (van persoon + eerste roomie of van persoon + partner) de bonus van +5?
Hierom:
+1 Als geen van de roomies in dezelfde kamer is
ingedeeld, maar wel een of meerdere in het zelfde
huis. Deze regel gaat ook op wanneer iemand's
partner een roomie heeft opgegeven.

Stel niet uit tot morgen wat je vandaag nog tot morgen kunt uitstellen...


Acties:
  • 0 Henk 'm!

  • webschaapje
  • Registratie: Mei 2007
  • Laatst online: 10-06-2024
Heel leuk die online validator. Ik haal momenteel 305 punten met de testset. Enige probleem is dat mijn oplossing nu nog wel invaliden bij niet-invaliden plaatst en organisatie bij niet-organisatie. Dus ik zou eigenlijk 0 punten moeten krijgen toch?

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
JokerLash schreef op zondag 27 mei 2007 @ 18:38:
[...]


Dus er mag ook een , voorkomen in een username, dat is dan wel mooi pech hebben omdat de roomies en niet roomies gescheiden worden door een ,
Als de komma het scheidingsteken is dan is het wiedes dat die niet mag voorkomen in de nickname. Ik wil niet ontzettend zeiken of mierenneuken maar wat wordt er toch en hoop heisa gemaakt over een ini-file inlezen. Granted; de specs hadden wat duidelijker kunnen zijn, maar kom op. Ik zie het gros van de posts over die ini files gaan en er lijken me toch belangrijker dingen te doen voor deze contest.

Daarnaast is het 'defensieve' coden natuurlijk ook hierop van toepassing. Hoewel (again) de specs wat duidelijker hadden mogen zijn bij aftrap van deze contest kun je natuurlijk ook gewoon met een paar regels code rekening houden met dit soort kleine futiliteiten. Zowieso leveren we die test-sets niet voor niets aan (en daar zie je dus al een é in voorkomen...trek je conclusies) en zie je ook dat namen geen komma's bevatten. Ik ben het prima met iedereen eens als je zegt dat de specs voordat je aan een (real world of niet) opdracht begint zo duidelijk mogelijk moeten zijn maar van een beetje rekening houden met "het onbekende" is toch nog nooit een devver doodgegaan, wel? :P

[ Voor 18% gewijzigd door RobIII op 27-05-2007 19:59 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • coubertin119
  • Registratie: Augustus 2002
  • Laatst online: 13-09 17:05
Is er voor PHP een bepaalde memory_limit in gedachten? Ik moest daarnet voor de testset uit de startpost een optimalisatie uitvoeren omdat ik anders na het maken van bepaalde reeksen objecten boven de 8M kwam. Op dit moment zit ik daar terug onder (relaties bepalen tussen organisatie en niet-organisatie heeft geen nut) maar als er met grotere sets gewerkt wordt ga ik daar natuurlijk terug over. Lokaal heb ik m'n limiet vergroot, maar mogen we er ook vanuit gaan dat de limiet bij de beoordeling hoog genoeg ligt?

En eigenlijk doet mijn stukje software nog steeds niet meer dan alles inlezen en daar wat gegevens over bijmaken :P. Maar op dit moment is alles wel voorhanden om te kunnen beginnen met het echtere werk. Voor de lijnenaantalfetisjisten, ik zit op 500, beetje commentaar en witruimte, maar dat is voor uitbreiding vatbaar.

Skat! Skat! Skat!


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 17:03

Creepy

Tactical Espionage Splatterer

Als je code knalt vanwege een memory limiet dan passen we desnoods de limiet wel aan (of maak een batch script o.i.d. dat daar voor zorgt). 8MB is een limiet van niks dus dat wordt wel opgeschroeft. Als je meer dan 1GB nodig hebt dan moet je je pas echt zorgen te gaan maken.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • lvh
  • Registratie: Juli 2001
  • Laatst online: 02-11-2022

lvh

In de testset heb je organisatoren die andere niet-organisatoren als roomies hebben. Welke zin heeft dat, gezien organisatoren alleen in hun eigen huisjes "passen"?

Voorbeeldje:
code:
1
2
3
4
5
6
[Thandor]
voorkeur=organisatie
roomies=Qwerty-273
partner=
nietroomies=LuNaTiC,Cookie,Pascal Saul
eten=alles

code:
1
2
3
4
5
6
[Qwerty-273]
voorkeur=zuiphuis
roomies=.oisyn
partner=
nietroomies=Sophia
eten=alles

Acties:
  • 0 Henk 'm!

  • Sibylle
  • Registratie: Juli 2006
  • Laatst online: 13-07-2023
omfg,ik heb net half jaar liggen zoeken naar waarom ik niet kon aanmaken:
een TStringList met als object != String maar TStringList.....
Kon niks vinden, dus maar omweg via een array gedaan met een eigen structure etc.

Zie ik net dat ik al die tijd over TList heb gekeken.... :-(
Maar!!!! ik zal mijn wraak nemen, ik ga TList toch gebruiken, muhahahaah (voor integers ipv array :P).

C++ vind ik heerlijk, maar ik heb geen enkele ervaring en dus ook geen idee welke functies en objects/methods of classes overal het handigste bij zijn. Best tijdrovend zo :P

Ctrl+k


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 17:03

Creepy

Tactical Espionage Splatterer

En dan heb je naast TList ook nog een TObjectList :P

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

Verwijderd

coubertin119 schreef op zondag 27 mei 2007 @ 20:02:
Is er voor PHP een bepaalde memory_limit in gedachten? Ik moest daarnet voor de testset uit de startpost een optimalisatie uitvoeren omdat ik anders na het maken van bepaalde reeksen objecten boven de 8M kwam.
Misschien is het een idee om volgende keer een geschiktere taal te leren. Met zo'n goed gespecificeerde opdracht is dat prima te doen. Dan hoef je je ook niet zo te laten beperken door PHP.

En 8 MB? Ik heb zojuist zitten berekenen dat ik bepaalde zaken vooraf bereken en opsla, voor optimalisaties, en dat dat best weleens zo'n 400 MB zou kunnen zijn. En dan moet het plaatsen van de deelnemers nog gaan gebeuren.
En eigenlijk doet mijn stukje software nog steeds niet meer dan alles inlezen en daar wat gegevens over bijmaken :P. Maar op dit moment is alles wel voorhanden om te kunnen beginnen met het echtere werk. Voor de lijnenaantalfetisjisten, ik zit op 500, beetje commentaar en witruimte, maar dat is voor uitbreiding vatbaar.
Bij mij is dat niet echt eerlijk te bepalen. Ik heb namelijk even een ini parser in elkaar gerost met Flex en Bison (had ik toch al nodig voor iets anders, dus bij deze maar gewoon gedaan).

$ find -type f -name "*.c" | xargs cat | wc -l
4425

Dus niet echt representatief.

Ik ga zodadelijk aan de code beginnen voor het berekenen van de scores. Dat lijkt me nog niet zo complex. Daarna code voor het indelen van de deelnemers, en dan code om te zorgen dat meerdere threads tegelijk bezig gaan.

[ Voor 7% gewijzigd door Verwijderd op 27-05-2007 22:15 ]


Acties:
  • 0 Henk 'm!

  • Marcks
  • Registratie: April 2007
  • Laatst online: 12-09 13:37
racoontje schreef op zondag 27 mei 2007 @ 21:31:
In de testset heb je organisatoren die andere niet-organisatoren als roomies hebben. Welke zin heeft dat, gezien organisatoren alleen in hun eigen huisjes "passen"?
Geen. Partners en (niet-)roomies kun je in dit geval gerust negeren. Misschien een idee om een FAQ'je op te nemen in de TS?

Heb zojuist trouwens even de snelheid van mijn programmaatje met een factor 4 omhoog weten te brengen. Aanvankelijk gebruikte ik een integer (ID) om een persoon aan te duiden, en de naam en voorkeuren van die persoon met behulp van arrays die strings bevatten. Voorbeeldje:
code:
1
2
3
Naam$(42) = "Peter"
Partner$(42) = "Monique"
Naam$(81) = "Monique"

Dit leidde echter tot een onnoemelijk trage functie Score(huis), omdat alleen de ID werd gekoppeld aan een bepaalde locatie. Moest ik dus uitrekenen of de partner zich op dezelfde kamer bevond, dan moest dat gebeuren met de opdracht NaamID(Partner$(42)). De functie NaamID(zoeknaam$) ging vervolgens alle ID's bij langs op zoek naar een match, en retouneerde vervolgens de waarde 81. Ik heb een poos na zitten denken over hoe ik dit zoekproces kon versnellen, zoals ID's en namen koppelen op alfabetische volgorde i.p.v. de ingelezen volgorde. De oplossing was echter veel simpeler, éénmalig de functie NaamID(zoeknaam$) aanroepen, en de waarde in een array opslaan. Voortaan kon ik de waarde 81 eenvoudig uit een variabele halen, in plaats van de trage functie NaamID te hoeven gebruiken. Voorbeeldje:
code:
1
2
3
Naam$(42) = "Peter"
Partner$(42) = "Monique"
Partner%(42) = NaamID(Partner$(42))


@geheugengoeroe's hierboven:
Ik programmeer op een bakkie dat fysiek niet eens over meer dan 64MB beschikt. Als je 400MB in gebruik hebt, doe je imo iets helemaal niet goed.

[ Voor 5% gewijzigd door Marcks op 27-05-2007 22:20 ]

Ik veronschuldig mij bij voorbaat voor het bovenstaande.


Acties:
  • 0 Henk 'm!

  • coubertin119
  • Registratie: Augustus 2002
  • Laatst online: 13-09 17:05
Marcks, het hangt denk ik erg af van de benaderingsmethode. Cheatah lijkt mij bij zo'n geheugenhoeveelheid te opteren voor simulaties, of iets wat ik even niet kan bedenken dat zo geheugenintensief zou kunnen zijn :). Je kan ook meer rechttoe rechtaan rekenen, en dan is die geheugenlimiet niet zo'n probleem. Maar ik vind 't in mijn geval wel gek dat PHP zo'n last heeft met een 15000 objecten die niet veel groter zijn 2 integers, 2 strings en 2 booleans. De +/- 700 byte lijkt me nogal overkill daarvoor. Nuja, geheugenmanagement is m'n ding helemaal niet, dus ik ben loze uitspraken aan het doen.

Skat! Skat! Skat!


Acties:
  • 0 Henk 'm!

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
Marcks schreef op zondag 27 mei 2007 @ 22:17:
[...]

Geen. Partners en (niet-)roomies kun je in dit geval gerust negeren. Misschien een idee om een FAQ'je op te nemen in de TS?
Het kan natuurlijk wel zijn dat je 2 organisatoren huisjes heb, en 2 organisatoren partners van elkaar zijn.

Acties:
  • 0 Henk 'm!

Verwijderd

Ach, ik ga ook maar meedoen, per slot van rekening moet iemand laatste worden :)

Is er ook een prijs voor grootste spaghetticode?

Acties:
  • 0 Henk 'm!

  • Darude1234
  • Registratie: Augustus 2003
  • Laatst online: 06-09 12:57
Mag er eigenlijk ook meer in het programma komen dan in de opdracht staat?
Ik zit er namelijk aan te denken gelijk een mogelijkheid erbij te doen waarmee je, alvast wat vakantieplannen kunt maken.

Acties:
  • 0 Henk 'm!

  • Darkwings
  • Registratie: Mei 2007
  • Laatst online: 15:35
Ik ben begonnen *O*

In principe heb ik nog zo goed als niks, maar het komt goed. Ga er trouwens vanuit dat het geen probleem is als ik 'n linux executable bouw, en dat het ook geen probleem is als de executable vrij groot wordt (lees: 'n mbtje of 10) ivm statisch meelinken van bepaalde libs?

Acties:
  • 0 Henk 'm!

  • lvh
  • Registratie: Juli 2001
  • Laatst online: 02-11-2022

lvh

Ben ik blind, of staat er in de TS dat het op Windows ook moet draaien?

Ik vind het ook rot (Debian for life) maar ik heb het opgelost door hier m'n allereerste perl project OOIT van te maken :-) Set::Object FTW!

Er is nog maar een probleempje, de Ini-parser die ik nu gebruik moet je een filenaam en geen file handle meegeven. Da's wel degelijk een probleem want ik dev op een linux bak, die niet echt akkoord is met wat Windowsbakken zoals die die de testset gemaakt hebben op het einde van een lijn zetten.

[ Voor 41% gewijzigd door lvh op 27-05-2007 22:57 ]


Acties:
  • 0 Henk 'm!

  • Darkwings
  • Registratie: Mei 2007
  • Laatst online: 15:35
Ik dacht dat ik ergens voorbij had zien komen dat 't ook wel een linux executable mocht zijn...

Komop, dit is tweakers devschuur, who de hell devt op windows :{

Acties:
  • 0 Henk 'm!

  • Alex)
  • Registratie: Juni 2003
  • Laatst online: 21-08 11:20
Dan stuur je een hele VMware-machine in, inclusief VMware player :+

VMware (Pocket) ACE FTW :p

We are shaping the future


Acties:
  • 0 Henk 'm!

  • Slonzo
  • Registratie: Mei 2007
  • Niet online

Slonzo

Taarsidath-an Halsaam

Als ik me niet vergis stond er ergens dat het 'liefst' op Windows moet runnen, maar dat Linux eigenlijk ook geen probleem was...

Acties:
  • 0 Henk 'm!

  • Marcks
  • Registratie: April 2007
  • Laatst online: 12-09 13:37
Darkwings schreef op zondag 27 mei 2007 @ 23:02:
Ik dacht dat ik ergens voorbij had zien komen dat 't ook wel een linux executable mocht zijn...

Komop, dit is tweakers devschuur, who de hell devt op windows :{
Eensch! MS-DOS 4 life! :+

Ik veronschuldig mij bij voorbaat voor het bovenstaande.


Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op woensdag 23 mei 2007 @ 19:08:
denk niet dat lindo zal mogen. is toch prog compo.

denk dat ik maar eens een poging ga wagen. lijkt me wel leuk
Wat bedoel je met prog compo?

Acties:
  • 0 Henk 'm!

  • Hobbles
  • Registratie: Augustus 2004
  • Laatst online: 10-09 08:00
Programmeer competitie lijkt me de meest logische "vertaling" 8)

Everything is possible if you really want it.


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 19:28
Darkwings schreef op zondag 27 mei 2007 @ 23:02:
Ik dacht dat ik ergens voorbij had zien komen dat 't ook wel een linux executable mocht zijn...
Komop, dit is tweakers devschuur, who de hell devt op windows :{
Ik geloof dat bij de eerdere contests inderdaad ook Linux genoemd was. Ik neem aan dat er ook onder Linux gejureert kan worden als het niet anders kan. Ik zou je hier dus maar niet door laten tegenhouden. ;)

Zelf develop ik ook onder Linux, maar het bleek niet problematisch om m'n code naar Windows te porten. (Bij de vorige contest had ik was POSIX-only features uitgezet onder Windows).

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 17:03

Creepy

Tactical Espionage Splatterer

Onder Linux laten uitvoeren is geen probleem. Maar aangezien een deel van de ingeleverde entries alleen maar onder Windows draait maak je ons het leven makkelijker als je een Windows executable kan aanleveren.

Gezien de contests en het totaal kunnen missen van een GUI lijkt me (portable) coden onder Linux en runnen onder Windows nou niet zo'n probleem (Iet's wat Soultaker prima laat zien).
Komop, dit is tweakers devschuur, who de hell devt op windows
Denk eerst eens na voordat je dat soort uitspraken doet ;)

[ Voor 15% gewijzigd door Creepy op 27-05-2007 23:55 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

Verwijderd

Ik ben nu bezig op een Debian bak, met een PowerPC processor 1). Aan mijn binary gaan ze vast niets hebben. Maar het is gebouwd met de GNU tools, in feite is er niet veel nodig, alleen libc6 en libpthread eigenlijk. Eventueel Flex, Bison, Automake, Autoconf, Libtool, maar niets exotisch. De ini parser heb ik er toch ook al bij geschreven. Ik ben eerlijk gezegd niet echt van plan het te gaan porten zodat het ook op een Windows machine draait.

1) Dat is zelfs nog een redelijk trage Mac Mini, die het op dit moment redelijk voor elkaar krijgt om 15 seconden 1 miljoen verschillende situaties door te rekenen.

[ Voor 50% gewijzigd door Verwijderd op 28-05-2007 00:23 ]

Pagina: 1 ... 4 ... 11 Laatste

Dit topic is gesloten.