| Visa föregående ämne :: Visa nästa ämne |
| Startad av: |
Meddelande |
devphp

Medlem i: 1035 dagar Från: Hedemora
Status: Offline
#719526
|
Skrivet: 2012-01-22 00:37
Ämne: Tävlingstråd: Flippa arrayen!
|
|
|
Tänkte det kunde får vara dags för en ny tävlingstråd
Konceptet är enkelt; ni ska skapa en egen version av array_flip()
Jag kommer att skapa en array med hundra element, i vilken jag sedan blandar om värdena.
Det ni ska göra är att byta plats på nyckel och värde.
Alltså ska[0] => 13 bli [13] => 0 osv. Är ni osäkra på hur den fungerar hänvisar jag till manualen.
Regler:
* Man får naturligtvis inte använda den inbyggda array_flip();
* Tävlingen går ut på att skriva så kort kod som möjligt
* Koden får inte ge några errors eller notices, den ska fungera felfritt på min 32-bitars server med php5.3
* Bidragen kommer att testas några gånger (F5 like a boss)
* Arrayen behöver inte vara sorterad på något speciallt sätt
* Jag vill inte se att folks kod ändrar min felhantering eller liknande
* Koden kommer endast testas i mallen nedan
* Tänkte att tävlingen kan hålla på resten av den här månaden, frågor får ställas idag och i morgon och tävlingen börjar på måndag
* Man får bara skicka in ett bidrag! (undantag är om man skickar in kod som inte fungerar, då kan man får skicka in en ny som fungerar)
* Ni skriver all kod i den avsedda funktionen nedan.
* Alla tecken räknas, även mellanslag. Variabler räknas som 2 tecken. ($a räknas på samma sätt som $aa eller $aaaaaaa)
* Om några regler ändras så skriver jag dem här under med röd kursiv text, så håll utkik!
* Tänk på att man inte får skapa nya variabler i loopar heller! Använd $x på ett mer effektivt sätt om ni får problem med detta.
1: // Din funktion 2: function array_flip_custom($numbers) 3: { 4: $x = null; 5: // Din kod 6: } 7: 8: $numbers = range(0, 99); // Skapar en array med 100 element; 0 - 99 9: shuffle($numbers); // Blandar arrayen 10: 11: if(array_diff_assoc(array_flip($numbers), array_flip_custom($numbers)) != array()) 12: { 13: die("Fail! Arrayerna matchar inte!"); 14: } 15: die("YAY! Arrayerna matchar!");
|
Koden ovan består av 235 tecken (inkl. mellanslag). Dessa tecken räknas inte med i era lösningar.
Ni får inte skapa några nya variabler inuti funktionen än den som redan finns!
Alla bidrag skickas i PM till mig innan denna månad är slut.
Lycka till! 
Senast ändrad av devphp den 2012-01-22 20:56, ändrad totalt 2 gånger |
|
|
_________________ while(!empty($_COOKIE['jar']))
{
eat($_COOKIE);
} |
| Till toppen på sidan |
|
DrPhil
Medlem i: 1864 dagar
Status: Offline
#719532
|
Skrivet: 2012-01-22 01:42
Ämne:
|
|
|
| Måste det vara en exakt kopia av array_flip? Det jag undrar är om den måste hantera fel osv på exakt samma sätt eller om funktionen kan antaga att den får korrekt input. |
|
|
_________________ 42 |
| Till toppen på sidan |
|
devphp

Medlem i: 1035 dagar Från: Hedemora
Status: Offline
#719533
|
Skrivet: 2012-01-22 01:49
Ämne:
|
|
|
| DrPhil skrev: |
| Måste det vara en exakt kopia av array_flip? Det jag undrar är om den måste hantera fel osv på exakt samma sätt eller om funktionen kan antaga att den får korrekt input. |
Nej nej, det enda sättet den kommer att testas på är genom att jag kör den koden som står i "mallen".
Glömde säga att jag inte vill se några fulingar som ini_set( *mixar lite med felhanteringen här* ); |
|
|
_________________ while(!empty($_COOKIE['jar']))
{
eat($_COOKIE);
} |
| Till toppen på sidan |
|
Sawny
Medlem i: 1008 dagar
Status: Offline
#719736
|
Skrivet: 2012-01-25 22:12
Ämne:
|
|
|
| Får man använda PHPs andra inbyggda funktioner? |
|
|
_________________ HTML, CSS, PHP, JS |
| Till toppen på sidan |
|
devphp

Medlem i: 1035 dagar Från: Hedemora
Status: Offline
#719737
|
Skrivet: 2012-01-25 22:21
Ämne:
|
|
|
| Sawny skrev: |
| Får man använda PHPs andra inbyggda funktioner? |
Ja, skicka ett PM till mig om det är någon funktion du är osäker på. |
|
|
_________________ while(!empty($_COOKIE['jar']))
{
eat($_COOKIE);
} |
| Till toppen på sidan |
|
Sawny
Medlem i: 1008 dagar
Status: Offline
#719739
|
Skrivet: 2012-01-25 22:51
Ämne:
|
|
|
Klar :D
Ska bara optimera koden nu.. |
|
|
_________________ HTML, CSS, PHP, JS |
| Till toppen på sidan |
|
EmilV


Medlem i: 3796 dagar Från: Upplands Väsby
Status: Offline
#719741
|
Skrivet: 2012-01-25 23:24
Ämne:
|
|
|
Gäller det kortast antal faktiska tecken eller gäller reglerna från den här tråden: http://www.phpportalen.net/viewtopic.php?t=113626 ?
Fördelen med den trådens regler är att man kan skriva någorlunda läsbar kod (vettiga variabelnamn, mellanrum, kommentarer och liknande).
Edit: Såg nu att du inte använder dessa regler. Får man fråga varför? Som jag ser det är det poänglöst att räkna varje enskilt tecken. Nu kommer man ju skriva det med vettiga namn och mellanrum för att sedan ersätta det när man är klar.
Senast ändrad av EmilV den 2012-01-25 23:32, ändrad totalt 1 gång |
|
|
_________________ Tänk!
EmilVikström.se | GeHjärta.se |
| Till toppen på sidan |
|
devphp

Medlem i: 1035 dagar Från: Hedemora
Status: Offline
#719743
|
Skrivet: 2012-01-25 23:31
Ämne:
|
|
|
| EmilV skrev: |
Gäller det kortast antal faktiska tecken eller gäller reglerna från den här tråden: http://www.phpportalen.net/viewtopic.php?t=113626 ?
Fördelen med den trådens regler är att man kan skriva någorlunda läsbar kod (vettiga variabelnamn, mellanrum, kommentarer och liknande). |
Framgick inte det i första inlägget? o.O
| devphp skrev: |
| * Alla tecken räknas, även mellanslag. Variabler räknas som 2 tecken. ($a räknas på samma sätt som $aa eller $aaaaaaa) |
Du får naturligtvis lägga till kommentarer om du vill. Dem kan jag ju inte gärna räkna in som en del av koden.
I alla funktionsanrop räknas alla tecken med som behövs för respektive funktion.
Är det tydligt eller är det nåt annat du undrar över? |
|
|
_________________ while(!empty($_COOKIE['jar']))
{
eat($_COOKIE);
} |
| Till toppen på sidan |
|
Powha

Medlem i: 2993 dagar Från: Uppsala
Status: Offline
#719746
|
Skrivet: 2012-01-26 01:38
Ämne:
|
|
|
| Kan arrayen ha godtyckliga nycklar eller kommer nycklar och värden alltid vara i serien 0, 1, 2 ... n? |
|
|
_________________ PHPPortalens nya funktion |
| Till toppen på sidan |
|
Jalet
Medlem i: 3165 dagar Från: Järfälla, Kallhäll
Status: Offline
#719748
|
Skrivet: 2012-01-26 09:42
Ämne:
|
|
|
Tycker dom här trådarna är otroligt roliga även fast jag aldrig deltagit i någon av tävlingarna.
Skulle det inte vara kul om man kan sammanställa bidragen & tävlingarna så att man kan jämföra olika lösningar etc och gå tillbaka i historiken? |
|
|
_________________ http://www.tv.nu | http://www.sport.nu |
| Till toppen på sidan |
|
devphp

Medlem i: 1035 dagar Från: Hedemora
Status: Offline
#719769
|
Skrivet: 2012-01-26 13:24
Ämne:
|
|
|
| Powha skrev: |
| Kan arrayen ha godtyckliga nycklar eller kommer nycklar och värden alltid vara i serien 0, 1, 2 ... n? |
Nej, det ska inte spela någon roll! Kolla närmare på hur array_diff_assoc fungerar om du är osäker. (Det är ju den jag använder för att jämföra)
| Jalet skrev: |
| Tycker dom här trådarna är otroligt roliga även fast jag aldrig deltagit i någon av tävlingarna. |
Kanske är dags då?
| Jalet skrev: |
| Skulle det inte vara kul om man kan sammanställa bidragen & tävlingarna så att man kan jämföra olika lösningar etc och gå tillbaka i historiken? |
Jo, hade faktiskt tänkt skapa en stor tävlingstråd efter att den här tävlingen är färdig.
Där ska det finnas lite länkar till alla tävlingstrådar, hur resultaten blev samt en kort sammanfattning av vad tävlingarna gick ut på.
Man slipper på så sätt söka varje gång!  |
|
|
_________________ while(!empty($_COOKIE['jar']))
{
eat($_COOKIE);
} |
| Till toppen på sidan |
|
Powha

Medlem i: 2993 dagar Från: Uppsala
Status: Offline
#719777
|
Skrivet: 2012-01-26 15:50
Ämne:
|
|
|
| devphp skrev: |
| Powha skrev: |
| Kan arrayen ha godtyckliga nycklar eller kommer nycklar och värden alltid vara i serien 0, 1, 2 ... n? |
Nej, det ska inte spela någon roll! Kolla närmare på hur array_diff_assoc fungerar om du är osäker. (Det är ju den jag använder för att jämföra) |
Det jag menar är, du skrev ovan
| Citat: |
Jag kommer att skapa en array med hundra element, i vilken jag sedan blandar om värdena.
Det ni ska göra är att byta plats på nyckel och värde.
Alltså ska[0] => 13 bli [13] => 0 osv. Är ni osäkra på hur den fungerar hänvisar jag till manualen. |
Betyder det att arrayen bara har heltalsvärden 0 till 99 som nycklar och värden, ska du bara testa koden med den givna koden?
Eller ska lösningen vare precis som array_flip, som även tar hänsyn till t.ex:
10 till 20?
0, 5, 10, 15 ... n?
strängar?
null?
object? |
|
|
_________________ PHPPortalens nya funktion |
| Till toppen på sidan |
|
Wedge


Medlem i: 3922 dagar Från: Järfälla
Status: Offline
#719778
|
Skrivet: 2012-01-26 15:57
Ämne:
|
|
|
| Powha skrev: |
| Betyder det att arrayen bara har heltalsvärden 0 till 99 som nycklar och värden, ska du bara testa koden med den givna koden? |
| devphp skrev: |
| * Koden kommer endast testas i mallen nedan | |
|
|
_________________ Qualitum Webbhotell | Gomoku.se | PHP6.se
Skådebröd är fullt av optisk fiber |
| Till toppen på sidan |
|
Sawny
Medlem i: 1008 dagar
Status: Offline
#719860
|
Skrivet: 2012-01-28 22:27
Ämne:
|
|
|
Skickat in mitt bidrag nu
Är inte så svår uppgift att skapa array_flip. Det svåra är att få den så kort som möjligt.
Så delta!
Brukar vara rätt få som deltar, kul om det kommer in fler bidrag. |
|
|
_________________ HTML, CSS, PHP, JS |
| Till toppen på sidan |
|
Peppe L-G

Medlem i: 2271 dagar Från: Linköping
Status: Offline
#719871
|
Skrivet: 2012-01-29 11:28
Ämne:
|
|
|
| Jag skickade in ett bidrag för några dagar sedan, så vi blir minst två deltagare. Må bäste man vinna (: |
|
|
_________________ Första spelet på Robuni kan nu laddas ner. |
| Till toppen på sidan |
|
|