Iedere maand wordt er op het forum van phpfreakz.nl een nieuwe opgave gepost.quote:Beste PHP-ers,
--[ Wat is PHP Golf?
De bedoeling is een PHP script te maken met zo min mogelijk karakters.
Dus zo min mogelijk letters, nummers, spaties, newlines en dergelijke.
Met het script moet je een doelstelling bereiken.
We gaan ervan uit dat je de recenste PHP 4.x, op het moment 4.4,
versie hebt en standaard php.ini configuratie. Tenzij anders vermeld.
(Standaard: register_globals = off)
Het script moet op UNIX-gebaseerde en Windows systemen werken.
--[ Voor wie is PHP Golf?
De competitie is voor iedereen toegankelijk.
--[ Inzendingen
Je kunt je oplossing sturen naar:
phpgolf [at] gmail [dot] com
(Disclaimer: je e-mail zal niet worden gebruikt voor
spam of worden doorgegeven aan derden)
quote:--[ Doelstelling
Het script moet de volgende output genereren:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
BCDEFGHIJKLMNOPQRSTUVWXYZA
CDEFGHIJKLMNOPQRSTUVWXYZAB
DEFGHIJKLMNOPQRSTUVWXYZABC
EFGHIJKLMNOPQRSTUVWXYZABCD
FGHIJKLMNOPQRSTUVWXYZABCDE
GHIJKLMNOPQRSTUVWXYZABCDEF
HIJKLMNOPQRSTUVWXYZABCDEFG
IJKLMNOPQRSTUVWXYZABCDEFGH
JKLMNOPQRSTUVWXYZABCDEFGHI
KLMNOPQRSTUVWXYZABCDEFGHIJ
LMNOPQRSTUVWXYZABCDEFGHIJK
MNOPQRSTUVWXYZABCDEFGHIJKL
NOPQRSTUVWXYZABCDEFGHIJKLM
OPQRSTUVWXYZABCDEFGHIJKLMN
PQRSTUVWXYZABCDEFGHIJKLMNO
QRSTUVWXYZABCDEFGHIJKLMNOP
RSTUVWXYZABCDEFGHIJKLMNOPQ
STUVWXYZABCDEFGHIJKLMNOPQR
TUVWXYZABCDEFGHIJKLMNOPQRS
UVWXYZABCDEFGHIJKLMNOPQRST
VWXYZABCDEFGHIJKLMNOPQRSTU
WXYZABCDEFGHIJKLMNOPQRSTUV
XYZABCDEFGHIJKLMNOPQRSTUVW
YZABCDEFGHIJKLMNOPQRSTUVWX
ZABCDEFGHIJKLMNOPQRSTUVWXY
Nu mag jij het script programmeren en liefst zo kort mogelijk.
--[ Deadline:
De deadline is over 8 dagen.
Vrijdag 19:00 4 november 2005
-----
quote:Post in dit topic vragen/suggesties.
GEEN OPLOSSINGEN!
Warnings en notices mogen, want die worden niet getoond.quote:Op zondag 30 oktober 2005 09:54 schreef Chandler het volgende:
ah... dus het hoeft code technisch dus niet perfect te zijn
Ik zie het jaquote:Op zondag 30 oktober 2005 10:06 schreef SuperRembo het volgende:
Als je de ?> weglaat dan moet je wel afsluiten met een ;, dus het scheelt maat 1 teken.
Het weglaten van ?> geeft geen notice. Mijn scriptje werkt zelfs helemaal zonder notices
Dan heb je vast nog geen 50 tekens.quote:Op zondag 30 oktober 2005 10:17 schreef Chandler het volgende:
hier echt welheb namelijk alle notice etc aan staan
quote:Op zondag 30 oktober 2005 10:54 schreef Swetsenegger het volgende:
He light, heb je je ZCE gehaald?
Gefeliciteert!quote:Op zondag 30 oktober 2005 10:58 schreef Light het volgende:
[..]
Het staat al een ruime week in m'n sig, maar dat valt niemand op
Dankquote:Op zondag 30 oktober 2005 11:03 schreef Swetsenegger het volgende:
[..]
Gefeliciteert!
Je moet 'm ook klikbaar maken naar je certificaat he
Textonly heeft geen sigsquote:Op zondag 30 oktober 2005 10:58 schreef Light het volgende:
[..]
Het staat al een ruime week in m'n sig, maar dat valt niemand op
Dank. Dit ben ik.quote:Op maandag 31 oktober 2005 11:38 schreef Roonaan het volgende:
[..]
Textonly heeft geen sigs
Gefeliciteerd. Welke ben je? (yellow pages)
1 |
1 |
1 |
1 |
53 vind ik ook wel leuk eigenlijkquote:Op zaterdag 3 december 2005 23:10 schreef SuperRembo het volgende:
Ok 56 en dan hou je nu op he.
Er staat in de opdracht dat je de functie eval() niet mag gebruiken.quote:Op zondag 4 december 2005 23:53 schreef Ro�a� het volgende:
een preg met /e valt onder eval toch?
Nee, maar ik vind eigenlijk van wel. Weet niet hoe de source code van preg_replace() eruit ziet maar ik gok er heel erg op dat het in feite een interne eval()-aanroep is.quote:Op zondag 4 december 2005 23:53 schreef Ro�a� het volgende:
een preg met /e valt onder eval toch?
Was toch gewoon een vraag?quote:Op maandag 5 december 2005 01:18 schreef Wifibro het volgende:
He jongens, we hadden gevraagd om geen oplossingen te geven, nou zie ik toch weer een heel duidelijke aanwijzing!
jups.quote:Roonan, heb je je 52 tekens inzending getest op juiste output met de in de opdracht gegeven sommetjes?
Alsof op phpfreakz geen aanwijzingen worden gegeven zeker.quote:Op maandag 5 december 2005 01:18 schreef Wifibro het volgende:
He jongens, we hadden gevraagd om geen oplossingen te geven, nou zie ik toch weer een heel duidelijke aanwijzing!
Ik heb de oplossing van Roonaan niet gezien, maar ik denk dat zijn oplossing dezelfde is als die van mij, en die is getest met de gegeven sommen.quote:Roonan, heb je je 52 tekens inzending getest op juiste output met de in de opdracht gegeven sommetjes?
Op PFZ is geen functie genoemd.quote:Light:
Alsof op phpfreakz geen aanwijzingen worden gegeven zeker.
Tjee, wat goed....quote:Ik heb de oplossing van Roonaan niet gezien, maar ik denk dat zijn oplossing dezelfde is als die van mij, en die is getest met de gegeven sommen.
Ik heb hier ook geen volledige functie genoemd zien worden eigenlijk. Ja, eval(), met als opmerking dat die niet gebruikt mag worden.quote:Op maandag 5 december 2005 01:32 schreef Wifibro het volgende:
[..]
Op PFZ is geen functie genoemd.
[..]
Zoveel keuze is er niet bij heel weinig tekens hoorquote:Tjee, wat goed....
Roönaän had het over een functie met een bepaalde modifier die alleen bij één functie kan voorkomenquote:Op maandag 5 december 2005 01:39 schreef Light het volgende:
[..]
Ik heb hier ook geen volledige functie genoemd zien worden eigenlijk. Ja, eval(), met als opmerking dat die niet gebruikt mag worden.
Detailquote:Op maandag 5 december 2005 01:42 schreef JeRa het volgende:
[..]
Roönaän had het over een functie met een bepaalde modifier die alleen bij één functie kan voorkomen
Roonaan geeft toch geen oplossing? Dit soort opmerkingen zie je ook op phpfreakz staan in de diverse golven. De mensen welke weten wat /e doet, komen er zelf ook wel opquote:Op maandag 5 december 2005 01:18 schreef Wifibro het volgende:
He jongens, we hadden gevraagd om geen oplossingen te geven, nou zie ik toch weer een heel duidelijke aanwijzing!
Ik ook niet. Meestal komt het toch op een reguliere expressie uit, maar ik probeer de uislagen altijd wel te begrijpen. Je leert er heel veel van.quote:Op maandag 5 december 2005 08:30 schreef Chandler het volgende:
Ik wacht rustig af... ken het zelf toch niet...![]()
Uiteraardquote:Op maandag 5 december 2005 08:45 schreef Light het volgende:
Uitleggen komt pas nadat de wedstrijd is afgesloten![]()
Is er eigenlijk een system function die dit kan? of zou dat niet mogenquote:Op maandag 5 december 2005 08:45 schreef Light het volgende:
Uitleggen komt pas nadat de wedstrijd is afgeslotenHet enige dat ik kwijt wil ik dat ik geen enkele ruimte meer zie om het nog korter te maken.
Ik zou er zo geen weten. De logische namen kan ik hier iig niet vindenquote:Op maandag 5 december 2005 09:03 schreef Ro�a� het volgende:
[..]
Is er eigenlijk een system function die dit kan? of zou dat niet mogen
ik ook niet, maar ik ben ook niet zo'n dosfreak.quote:Op maandag 5 december 2005 09:13 schreef Light het volgende:
[..]
Ik zou er zo geen weten. De logische namen kan ik hier iig niet vinden
Nou voorlopig zit ik nog op de 57 en zie ik nog steeds geen ruimte voor verbeteringquote:Op maandag 5 december 2005 08:26 schreef Swetsenegger het volgende:
Ik wacht nog op een briljante zet van SUperRembo
Tja, als ik een scriptje op mijn server host en simpelweg remote de inhoud van het resultaat opvraag kan ik ook alles oplossen, en het zal ook niet mogen, maar het staat niet in de regels!quote:
Nee hoorquote:Op dinsdag 6 december 2005 22:08 schreef crisp het volgende:
minder had gekunt als de submit-button geen name-attribuut had gehad
Ook wel *tak tik*quote:Op vrijdag 9 december 2005 22:03 schreef Ro�a� het volgende:
*tik tak* ;-)
Ik heb even gekeken, maar op basis van mijn oplossing van 52 tekens zie ik echt niet waar er nog een teken te besparen is.quote:Op vrijdag 9 december 2005 23:51 schreef Ro�a� het volgende:
[..]
niet per ongeluk get ipv post gebruikt?
*naarstig op zoek is naar kortere oplossing*
Dat klopt, het is zelfs een functie in PHP. Het is echter noodzakelijk om je output 'toonbaar' te maken aangezien compressie meestal binaire data oplevert. Daarbij is het verlies door base64 (33%) juist weer een extra uitdaging om je compressie zo optimaal mogelijk te maken (standaard LZW doet al gauw zo'n 50%)quote:Op zaterdag 10 december 2005 00:01 schreef Light het volgende:
Voor base64 encoden is volgens mij al een standaardalgoritme. En je kunt vooraf zeggen hoeveel bytes een resultaat wordt (overigens is een base64 resultaat groter dan het origineel). Maar een optie voor het verkleinen van een standaarddocument (tekst ofzo) zou op zich wel een uitdaging zijn
Dat zouden ze eigenlijk opnieuw moeten proberen, nu doet Fok! mee en iedereen weet dat je voor PHP-vraagstellingen hier moet zijn en niet bij PHPFreakzquote:Op zaterdag 10 december 2005 11:05 schreef SuperRembo het volgende:
Zo'n soort opgave is er al geweest: PHP Golf 3. Die opgave heeft geen inzendingen opgeleverd.
1 |
1 |
Die hint van mij was misschien ook niet echt duidelijkquote:Op zondag 11 december 2005 22:03 schreef SuperRembo het volgende:
Het winnende scriptje van crisp:
[ code verwijderd ]
Ik heb er dus echt geen moment aan gedacht om de parameters om te wisselen (ondanks de hint van Light).
Maar hij kan nog korter
[ code verwijderd ]
49 tekens. bcadd() rondt trouwens naar beneden af.
1 |
|
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |