Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Kirjainten arpominen

Sivun loppuun

Rocceri [01.07.2009 19:29:59]

#

Hei,

Tarvitsin koodia, joka arpoo muutaman kirjaimen. Esimerkiksi koodi arpoisi kirjainten a-z väliltä 7 kirjainta ja sijoittaisi ne muuttujaan.
Perjaatteessa kuin rand(), mutta kirjaimilla.

GimPeltzi [01.07.2009 19:36:12]

#

Kenties näppärämpiä ratkaisuja on, mutta itse tekisin niin, että kirjoitetaan yhteen muuttujaan kirjaimet a-z, arvotaan luku väliltä 0-24 ja poimitaan muuttujasta lukua vastaava kirjain. Toistetaan halutun monta kertaa.

Rocceri [01.07.2009 19:40:25]

#

Ihan hyvä idea. Miten otan numeron kirjaimen numeron kohdalta? Siis, jos numero on 4, niin otetaan 4 kirjain muuttujasta. Miten tämä onnistuu?

kayttaja-2499 [01.07.2009 19:43:02]

#

Toimisko seuraava (koodi on c:tä ja rand() palauttaa arvon väliltä [0,RAND_MAX])?

for(int i = 0; i < 7; i++) {
  kirjain = rand() % ('z'-'a') + 'a';
  muuttuja[i] = kirjain;
}

GimPeltzi [01.07.2009 19:43:06]

#

rocceri kirjoitti:

Ihan hyvä idea. Miten otan numeron kirjaimen numeron kohdalta? Siis, jos numero on 4, niin otetaan 4 kirjain muuttujasta. Miten tämä onnistuu?

$merkkijono[$monesko_merkki]

Rocceri [01.07.2009 19:50:28]

#

kayttaja-2499 kirjoitti:

Toimisko seuraava (koodi on c:tä ja rand() palauttaa arvon väliltä [0,RAND_MAX])?

for(int i = 0; i < 7; i++) {
  kirjain = rand() % ('z'-'a') + 'a';
  muuttuja[i] = kirjain;
}

Tarkoitus oli tehdä PHP:llä nettisivulle ;)

GimPelzi kirjoitti:

Rocceri kirjoitti:

Ihan hyvä idea. Miten otan numeron kirjaimen numeron kohdalta? Siis, jos numero on 4, niin otetaan 4 kirjain muuttujasta. Miten tämä onnistuu?

$merkkijono[$monesko_merkki]

Niimpä tietenkin ;)

<?php
for($i = 0; $i < 5; $i++) {
$letters = "abcdefghijklmnopqrstuvwxyz";
$randletters = rand(1,25);
$totalrandletters = $letters[$randletters];
echo $totalrandletters;
}
?>

Näin tein, ja sitten kun yhdistin numerot:

<?php
$rand1 = rand(25659568396968,3474579580572626357);
$rand3 = rand(25659568396968,3474579580572626357);
$rand4 = rand(25659568396968,3474579580572626357);
$rand5 = rand(25659568396968,3474579580572626357);

for($i = 0; $i < 5; $i++) {
$letters = "abcdefghijklmnopqrstuvwxyz";
$randletters = rand(1,25);
$totalrandletters = $letters[$randletters];
$totalrand = "$totalrandletters$rand1$totalrandletters$rand2
$totalrandletters$rand3$totalrandletters$rand4
$totalrandletters$rand5$totalrandletters";
}
echo $totalrand;
?>

Ehkä helpomminkin voi tehdä

kayttaja-2499 [01.07.2009 19:54:50]

#

Rocceri kirjoitti:

Tarkoitus oli tehdä PHP:llä nettisivulle ;)

Joskus samat temput toimivat toisissakin kielissä.
Tietokone käsittelee kirjaimiakin numeroina. Esitettäessä ne ovat pikselimössöä.

Antti Laaksonen [01.07.2009 20:10:33]

#

Tässä on merkkijonon arpova funktio, jonka parametrit ovat merkkivälin ensimmäinen ja viimeinen merkki sekä merkkien määrä.

<?php

function arvonta($eka, $vika, $maara) {
    for ($i = 0; $i < $maara; $i++) {
        $tulos .= chr(rand(ord($eka), ord($vika)));
    }
    return $tulos;
}

// arvotaan 7 merkkiä väliltä a-z
echo arvonta("a", "z", 7);

?>

Funktio ord muuttaa merkin ASCII-koodiksi ja funktio chr muuttaa ASCII-koodin merkiksi.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta