Kuinka olisi mahdollista toteuttaa PHP:llä koodi joka käy kaikki mahdolliset numero ja koodi yhdistelmät? Itse olen vasta aloittelija joten en keksi miten tämän voisi toteuttaa.
En tiedä, mitä ovat ”numero ja koodi yhdistelmät” ja mitkä ovat mielestäsi ”kaikki mahdolliset”, joten yritä jatkossa kysyä täsmällisemmin.
Jos tarkoitat kaikkien tietyn mittaisten numerosarjojen muodostamista, kysymykseen on valmis vastaus rekursio-oppaassa, jonka olisit löytänyt hakemalla sanalla yhdistelmät. Aivan vastaava koodi sopii myös silloin, kun numeroiden sijaan tai lisäksi käytetään kirjaimia tai ylipäänsä tekstiä.
<?php function yhdistelmat($pituus, $osat, $alku = "") { if ($pituus <= 0) { return array($alku); } $tulos = array(); foreach ($osat as $jatko) { $tulos = array_merge($tulos, yhdistelmat($pituus - 1, $osat, $alku.$jatko)); } return $tulos; } // Esimerkki: header("Content-Type: text/plain"); $kaikki = yhdistelmat(3, array("1", "2", "3")); foreach ($kaikki as $yhdistelma) { echo $yhdistelma, "\n"; }
Jos taas tarkoitit, että sinulla on vaikkapa yhdessä taulukossa numeroita ja toisessa koodeja, voit muodostaa niistä kaikki yhdistelmät yksinkertaisesti kahdella sisäkkäisellä foreach-silmukalla.
sutinaseppo kirjoitti:
Kuinka olisi mahdollista toteuttaa PHP:llä koodi joka käy kaikki mahdolliset numero ja koodi yhdistelmät? Itse olen vasta aloittelija joten en keksi miten tämän voisi toteuttaa.
Kysymys on mieletön.
Kysymys on tosiaan mieletön, jos yhdistelmille ei aseteta rajoituksia. Jos taas halutaan käydä esimerkiksi kaikki 4 merkkiä pitkät numero- ja koodiyhdistelmät, niin homma muuttuu triviaaliksi.
sutinaseppo kirjoitti:
.. kaikki mahdolliset numero ja koodi yhdistelmät ..
Eli siis numerot ja koodi yhdistelmät ... Dodii..
Grez kirjoitti:
Kysymys on tosiaan mieletön, jos yhdistelmille ei aseteta rajoituksia.
Ei varsinaisesti. Kysymys on varsin epämääräinen, mutta kyllä siihen voi vastailla; vastauksissa pitää tosin tulkita tai arvata, mitä ”numero ja koodiyhdistelmät” tarkoittaa. Ja jos ei esimerkiksi aseteta pituusrajoitusta, niin oikea vastaus olisi PHP:n osalta ”ei mitenkään”, koska päättymättömän PHP-ohjelman ei kai voi tulkita tuottavan mitään.
lainaus:
Jos taas halutaan käydä esimerkiksi kaikki 4 merkkiä pitkät numero- ja koodiyhdistelmät, niin homma muuttuu triviaaliksi.
Silloinkin olisi ratkaistava, mitä ”numero ja koodiyhdistelmät” tarkoittaa. Oletettavasti ”numero” tarkoittaa Ascii-numeroita 0–9 (eikä esimerkiksi kaikkia Unicode-merkkejä, joiden kategoria on Number), mutta mitä ovat ”koodit”? Jos tarkoitetaan kirjaimia, miksi kysymyksessä ei lue ”kirjaimet”? Ja ”kirjain” olisi oikeasti tulkinnanvaraista. (Onko Ä kirjain? É? Ш?) Vaikka tähän saataisiin jokin yksiselitteinen vastaus, tehtävässä on epätriviaaleja osia, kuten se, onko tehokkuudella väliä, ja se, missä järjestyksessä yhdistelmät halutaan (tai kelpaako mikä vain järjestys).
Yucca kirjoitti:
Ei varsinaisesti. Kysymys on varsin epämääräinen, mutta kyllä siihen voi vastailla; vastauksissa pitää tosin tulkita tai arvata, mitä ”numero ja koodiyhdistelmät” tarkoittaa. Ja jos ei esimerkiksi aseteta pituusrajoitusta, niin oikea vastaus olisi PHP:n osalta ”ei mitenkään”, koska päättymättömän PHP-ohjelman ei kai voi tulkita tuottavan mitään.
Millä periaatteella päättymätön PHP-ohjelma on erilainen kuin päättymätön muulla kielellä tehty ohjelma? Jos päättymätön PHP-ohjelma tulostaa jatkuvasti kombinaatioita, se ei silti "tuota mitään" koska se on PHP-ohjelma?
Hieman taas logiikka ontuu, mutta se ei ole uutta.
Aihe on jo aika vanha, joten et voi enää vastata siihen.