qualitum logo
Tävlingstråd: Flippa arrayen!

PHPportalen Forum Index » PHP
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget Gå till sida 1, 2, 3  Nästa
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
devphp



Medlem i: 1063 dagar
Från: Hedemora
Status: Offline



#719526
Inlägg Skrivet: 2012-01-22 00:37      Ämne: Tävlingstråd: Flippa arrayen! Citera

Tänkte det kunde får vara dags för en ny tävlingstråd Smile

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.

PHP:
1:
 // Din funktion
2:
function array_flip_custom($numbers)
3:
{
4:
    $x null;
5:
    // Din kod
6:
}
7:
 
8:
$numbers range(099);        // 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! Very Happy

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
Visa användarprofil Skicka privat meddelande
DrPhil



Medlem i: 1891 dagar

Status: Offline



#719532
Inlägg Skrivet: 2012-01-22 01:42      Ämne: Citera

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
Visa användarprofil Skicka privat meddelande
devphp



Medlem i: 1063 dagar
Från: Hedemora
Status: Offline



#719533
Inlägg Skrivet: 2012-01-22 01:49      Ämne: Citera

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
Visa användarprofil Skicka privat meddelande
Sawny



Medlem i: 1035 dagar

Status: Offline



#719736
Inlägg Skrivet: 2012-01-25 22:12      Ämne: Citera

Får man använda PHPs andra inbyggda funktioner?
 

_________________
HTML, CSS, PHP, JS
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
devphp



Medlem i: 1063 dagar
Från: Hedemora
Status: Offline



#719737
Inlägg Skrivet: 2012-01-25 22:21      Ämne: Citera

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
Visa användarprofil Skicka privat meddelande
Sawny



Medlem i: 1035 dagar

Status: Offline



#719739
Inlägg Skrivet: 2012-01-25 22:51      Ämne: Citera

Klar :D
Ska bara optimera koden nu..
 

_________________
HTML, CSS, PHP, JS
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
EmilV
Moderator



Medlem i: 3824 dagar
Från: Upplands Väsby
Status: Offline



#719741
Inlägg Skrivet: 2012-01-25 23:24      Ämne: Citera

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
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
devphp



Medlem i: 1063 dagar
Från: Hedemora
Status: Offline



#719743
Inlägg Skrivet: 2012-01-25 23:31      Ämne: Citera

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
Visa användarprofil Skicka privat meddelande
Powha



Medlem i: 3021 dagar
Från: Uppsala
Status: Offline



#719746
Inlägg Skrivet: 2012-01-26 01:38      Ämne: Citera

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
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
Jalet



Medlem i: 3192 dagar
Från: Järfälla, Kallhäll
Status: Offline



#719748
Inlägg Skrivet: 2012-01-26 09:42      Ämne: Citera

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
Visa användarprofil Skicka privat meddelande Skicka e-post Besök användarens hemsida
devphp



Medlem i: 1063 dagar
Från: Hedemora
Status: Offline



#719769
Inlägg Skrivet: 2012-01-26 13:24      Ämne: Citera

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å? Wink

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! Very Happy
 

_________________
while(!empty($_COOKIE['jar']))
{
eat($_COOKIE);
}
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Powha



Medlem i: 3021 dagar
Från: Uppsala
Status: Offline



#719777
Inlägg Skrivet: 2012-01-26 15:50      Ämne: Citera

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
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
Wedge
Administratör



Medlem i: 3949 dagar
Från: Järfälla
Status: Offline



#719778
Inlägg Skrivet: 2012-01-26 15:57      Ämne: Citera

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
Visa användarprofil Skicka privat meddelande Besök användarens hemsida MSN Messenger
Sawny



Medlem i: 1035 dagar

Status: Offline



#719860
Inlägg Skrivet: 2012-01-28 22:27      Ämne: Citera

Skickat in mitt bidrag nu Smile
Ä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
Visa användarprofil Skicka privat meddelande
Peppe L-G



Medlem i: 2299 dagar
Från: Linköping
Status: Offline



#719871
Inlägg Skrivet: 2012-01-29 11:28      Ämne: Citera

Jag skickade in ett bidrag för några dagar sedan, så vi blir minst två deltagare. Må bäste man vinna (:
 

_________________
Första speletRobuni kan nu laddas ner.
Till toppen på sidan
Visa användarprofil Skicka privat meddelande MSN Messenger
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget Gå till sida 1, 2, 3  Nästa
PHPportalen Forum Index » PHP
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic
qualitum logo