Avatar billede cmau Nybegynder
27. februar 2007 - 17:04 Der er 16 kommentarer og
1 løsning

Finde ord ud fra nummer.

Hejsa

Efter mig og min ven var i usa sidste år i vinterferien, kom vi til at tale om ferien nu her og kom til at snakke om det med at de skriver bogstaver istedet for deres numre, som jo er virkelig smart.

Men nu hvor vi allerede har et nummer vilel vi jo gerne se hvad vi havde mulighed for at skrive vores nummber var.

Var det i den sammenhæng muligt at lave en php kode, hvor man indtastede sit nummer også skrev den alle mulige kombinationer ud hvor:
1 = 1
2 = abc
3 = def
4 = ghi
5 = jkl
6 = mno
7 = pqrs
8 = tuv
9 = wxyz
0 = 0

Hvis et nummer så bliver 1adgjmptw skal de to andre som er 2 også kommer. altså 1bdgjmptw og 1cdgjmptw.

Jeg har tænkt længe og kan ikke komme i tanke om en måde at gøre det på.

Håber nogen der ude har en smart opbygnings måde.
Avatar billede gentlebug Nybegynder
27. februar 2007 - 18:18 #1
Du laver da bare en str_replace ( http://php.net/str_replace )

såvidt jeg har forstået er bogstaverne bare det samme som der står på en mobil (dette er forskelligt fra fabrikant til fabrikant.)
Avatar billede cmau Nybegynder
27. februar 2007 - 18:28 #2
ja bare en str replace. Det siger du jo. Den anden vej er nem nok. men når tallet kan være 3 bogstaver. Hvordan gør man så sådan at den skriver alle tre muligheder.
Avatar billede cmau Nybegynder
27. februar 2007 - 18:29 #3
Har aldirg set 2 mobiler med forskellige tastature.

I dag har nykredit også begyndt deres reklamer for deres nye nummer, nykredit.
Avatar billede gentlebug Nybegynder
27. februar 2007 - 18:46 #4
hmm, jeg var sikker på der var forskel på tastaturer - men lidt google og jeg er vist blevet det klogere.. jeg tror det er svært at gå den anden vej, der er jo mange muligheder (jeg fulgte ikke med i skolen da vi havde sandsynlighedsregning..)
Avatar billede blackscorpion Nybegynder
27. februar 2007 - 18:51 #5
et eller andet sted tror jeg ikke du seriøst er interesseret i sådan et script...

prøv at tænkte på hvor mange forskellige muligheder du har med 8 tal...
og glem ikke også æøå.

Tror et sådan script ville være ALT for server krævende at køre pga. det mega store output du ville generere...

bare en tanke. :)
Avatar billede cmau Nybegynder
27. februar 2007 - 19:31 #6
blackscorpion > Jeg har tænkt lidt over det inden og regnet lidt på det. Der ville faktisk kun komme knap 12000 (3*3*3*3*3*3*4*4) forskellige resultater. Eller ja det jo faktisk meget, men kunne være sjovt at prøve. Jeg kunne jo bare køre den lokalt.
Avatar billede jakobdo Ekspert
27. februar 2007 - 21:05 #7
Jeg har leget lidt her.
Det kan muligvis laves smartere og mere fleksibelt, men her kommer det:

<?php
//http://www.eksperten.dk/spm/765109

$mobil  = str_split('12345678');
$number = array(
    1 => array('1'),
    2 => array('a','b','c'),
    3 => array('d','e','f'),
    4 => array('g','h','i'),
    5 => array('j','k','l'),
    6 => array('m','n','o'),
    7 => array('p','q','r','s'),
    8 => array('t','u','v'),
    9 => array('w','x','y','z'),
    0 => array('0')
);

for($m1 = 0; $m1 < count($number[$mobil[0]]); $m1++)
{
    for($m2 = 0; $m2 < count($number[$mobil[1]]); $m2++)
    {
        for($m3 = 0; $m3 < count($number[$mobil[2]]); $m3++)
        {
            for($m4 = 0; $m4 < count($number[$mobil[3]]); $m4++)
            {
                for($m5 = 0; $m5 < count($number[$mobil[4]]); $m5++)
                {
                    for($m6 = 0; $m6 < count($number[$mobil[5]]); $m6++)
                    {
                        for($m7 = 0; $m7 < count($number[$mobil[6]]); $m7++)
                        {
                            for($m8 = 0; $m8 < count($number[$mobil[7]]); $m8++)
                            {
                                echo $number[$mobil[0]][$m1];
                                echo $number[$mobil[1]][$m2];
                                echo $number[$mobil[2]][$m3];
                                echo $number[$mobil[3]][$m4];
                                echo $number[$mobil[4]][$m5];
                                echo $number[$mobil[5]][$m6];
                                echo $number[$mobil[6]][$m7];
                                echo $number[$mobil[7]][$m8];
                                echo '<br />';
                            }
                        }
                    }
                }
            }
        }
    }
}

?>
Avatar billede cmau Nybegynder
27. februar 2007 - 22:09 #8
Fatal error: Call to undefined function: str_split() in /home/www/rod/Untitled-2.php on line 4

Det var da underligt jeg fik fejl i første linje.
Avatar billede jakobdo Ekspert
27. februar 2007 - 22:15 #9
Tilføj dette i toppen:

if (!function_exists("str_split"))
{
    function strsplit($str, $l=1)
    {
        do
        {
            $ret[]=substr($str,0,$l);
            $str=substr($str,$l);
        }while($str != "");
        return $ret;
    }
}
Avatar billede cmau Nybegynder
27. februar 2007 - 22:21 #10
Skal jeg så slette linjen $mobil  = str_split('12345678');?
Avatar billede jakobdo Ekspert
27. februar 2007 - 22:27 #11
Nej, tilføje det ekstra kode lige over!
Avatar billede cmau Nybegynder
27. februar 2007 - 22:30 #12
http://woox.dk/Untitled-2.php
Fatal error: Call to undefined function: str_split() in /customers/woox.dk/woox.dk/httpd.www/Untitled-2.php on line 15
Avatar billede cmau Nybegynder
27. februar 2007 - 22:31 #13
Ahh du manglede en _ i strsplit
Avatar billede cmau Nybegynder
27. februar 2007 - 22:44 #14
Smider du svar? :) Så vil jeg se om vi kan fidne en smart alkoritme, som gør at to vokaler ikke kan stå efter hinanden og bogstaver som ikke bruges særlig meget nedproierteres. Så det bliver mere overskueligt.

Jeg skal nok også konfrontere en dansklære og hører hvilke ting der gør sig gældende for almindelige danskord, som bruges meget.
Avatar billede jakobdo Ekspert
28. februar 2007 - 08:09 #15
Du får et svar!
Jeg prøvede til at starte med at lave en mere dynamisk løsning, hvor et nummer f.eks. kunne være 6 eller 9 langt.
Min løsning her er hardcodet til 8 :o(
Avatar billede cmau Nybegynder
28. februar 2007 - 12:33 #16
8 er skam også fint :)
Avatar billede jakobdo Ekspert
28. februar 2007 - 13:15 #17
Takker for point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester