Kirjoittaja: Antti Laaksonen
Kiitokset tehtävästä: Pekka Karjalainen
Kotimaisten kielten tutkimuskeskus eli Kotus on julkaissut hiljattain Internetissä nykysuomen sanalistan, joka sisältää suomen kielen tavallisimmat sanat taivutustietoineen. Nyt on siis vihdoin kaikkien saatavilla kunnollinen suomen kielen sanaluettelo, jolle ohjelmoijan ei ole vaikea keksiä monia kiinnostavia käyttötapoja. Putkapostissa tutkitaan alkajaisiksi anagrammiryhmiä ja sanaketjuja.
Tätä tehtävää (ja muita ohjelmointikokeiluja) varten Ohjelmointiputkassa on saatavilla ohjelmoijalle alkuperäistä tiedostoa helpommin käsiteltävä muunnettu sanalista (350 kt). Tässä sanastossa ovat mukana ainoastaan suomen kielen pienaakkosia sisältävät sanat, minkä lisäksi XML-merkinnät ja taivutustiedot on poistettu sekä merkistöksi on vaihdettu ISO-Latin-1.
Anagrammiryhmä on joukko sanoja, jotka ovat toistensa anagrammeja eli niissä on samat kirjaimet. Esimerkiksi sanat antoisa, asiaton, isontaa ja tosiaan muodostavat anagrammiryhmän. Pienempiä anagrammiryhmiä ovat mikrosekunti ja sointumerkki sekä saneluratkaisu ja seurakuntasali.
Sanaketjun jokaisesta sanasta pääsee seuraavaan yksinkertaisella muunnoksella. Tässä tehtävässä sallittuja muunnoksia ovat kirjaimen lisäys, kirjaimen poisto, kirjaimen muutos ja sanan kääntö ympäri. Sama sana voi esiintyä ketjussa vain kerran. Esimerkiksi sanat sulka, sula, alus, alas ja jalas muodostavat sanaketjun.
Tehtävänä on etsiä Kotuksen sanastosta kaikki anagrammiryhmät, joissa ryhmän sanamäärän ja yhden sanan pituuden tulo on ainakin 24, sekä mahdollisimman pitkä sanaketju. Vastauksen ensimmäisellä rivillä lukee, kuinka monta anagrammiryhmää siinä on. Tämän jälkeen tulevat kaikki anagrammiryhmät omilla riveillään ja lopuksi pisin sanaketju omalla rivillään.
Vastaus voisi näyttää seuraavalta:
2
antoisa asiaton isontaa tosiaan
mikrosekunti sointumerkki
sulka sula alus alas jalas
Molemmissa anagrammiryhmissä sanamäärän ja sanan pituuden tulo on ainakin 24 (4 * 7 = 28, 2 * 12 = 24). Kuitenkin vastauksessa täytyy olla yhteensä ainakin kaksitoista sanaa, jotta esimerkki ei kelpaa suoraan vastaukseksi.
37 henkilöllä on tulos. Suluissa oleva luku tarkoittaa vastauksen sanojen yhteismäärää.
jlaire (8070), symbols (8046), VilleP (7948), kluopaja (7558), TapaniS (7553), lukujenVihaaja (7484), Laitinen (7482), FooBat (7437), öppis (7247), Chiman (7134), Ruokauuni (7123), Metabolix (6906), Deewiant (5875), Legu (5869), Grez (5749), tonberry1 (5746), Sisuaski (5652), Konvehti (5647), Jhuunhym (5450), Laakeri (5301), isashkar (5266), malaire (5101), Seriffi (3729), Pekka Karjalainen (1486), Torgo (1258), Juice (1233), Meitzi (1224), qalle (1208), mikaelh (1205), arcatan (1205), Hansen (1205), Jepso (1200), Megant (1198), Kaukainen amatööri (1138), jalski (999), Salama (813), zebraze (13)
Aika | Käyttäjä | Tulos |
---|---|---|
22.05.2007 12:30:00 * | Chiman | 12 |
22.05.2007 16:00:00 * | Deewiant | 14 |
22.05.2007 20:30:00 * | Metabolix | 1112 |
22.05.2007 20:50:00 * | Metabolix | 1200 |
23.05.2007 08:18:01 * | Deewiant | 1206 |
23.05.2007 09:56:01 * | Deewiant | 1211 |
23.05.2007 13:13:01 * | tonberry1 | 1244 |
23.05.2007 14:51:01 * | tonberry1 | 2400 |
23.05.2007 18:08:01 * | tonberry1 | 2554 |
23.05.2007 19:46:01 * | Deewiant | 5687 |
24.05.2007 00:50:00 * | Grez | 5747 |
24.05.2007 01:00:00 * | Grez | 5749 |
24.05.2007 22:50:01 * | FooBat | 5751 |
25.05.2007 09:45:01 * | Deewiant | 5798 |
25.05.2007 22:50:00 * | Deewiant | 5875 |
26.05.2007 14:22:01 * | FooBat | 6608 |
26.05.2007 22:08:01 * | FooBat | 6983 |
27.05.2007 00:04:01 * | FooBat | 7191 |
27.05.2007 02:00:00 * | FooBat | 7205 |
27.05.2007 02:30:00 * | FooBat | 7372 |
27.05.2007 10:00:00 * | FooBat | 7423 |
31.05.2007 19:00:01 * | FooBat | 7437 |
08.06.2007 10:45:01 * | VilleP | 7463 |
09.06.2007 13:00:01 * | VilleP | 7925 |
10.06.2007 15:15:01 * | VilleP | 7937 |
11.06.2007 17:30:01 * | VilleP | 7941 |
12.06.2007 19:45:01 * | VilleP | 7948 |
01.11.2013 23:47:05 | jlaire | 7949 |
24.08.2015 16:03:49 | jlaire | 7950 |
24.08.2015 16:29:56 | jlaire | 7951 |
26.08.2015 17:02:01 | jlaire | 7952 |
28.08.2015 17:30:56 | jlaire | 7953 |
29.08.2015 12:06:41 | jlaire | 7954 |
29.08.2015 12:21:29 | jlaire | 7955 |
29.08.2015 21:26:43 | jlaire | 7956 |
29.08.2015 22:48:13 | jlaire | 7957 |
31.08.2015 14:47:21 | jlaire | 7958 |
01.09.2015 19:07:14 | jlaire | 7968 |
06.09.2015 23:10:45 | jlaire | 7970 |
10.09.2015 23:04:51 | jlaire | 7971 |
03.10.2015 14:50:36 | jlaire | 7972 |
05.10.2015 17:54:04 | jlaire | 7973 |
10.10.2015 14:33:55 | jlaire | 7974 |
27.10.2015 15:50:23 | jlaire | 7975 |
16.11.2015 23:03:05 | jlaire | 7976 |
30.12.2015 11:52:42 | jlaire | 7977 |
15.01.2016 22:10:56 | jlaire | 7978 |
28.01.2016 12:54:20 | jlaire | 7979 |
15.02.2016 10:43:21 | jlaire | 7980 |
12.04.2016 05:13:41 | jlaire | 7999 |
12.04.2016 05:13:57 | jlaire | 8000 |
22.12.2017 22:22:30 | symbols | 8046 |
25.08.2024 00:47:39 | jlaire | 8047 |
25.08.2024 01:23:48 | jlaire | 8050 |
01.09.2024 17:51:12 | jlaire | 8051 |
09.09.2024 21:35:40 | jlaire | 8052 |
10.09.2024 13:04:46 | jlaire | 8053 |
11.09.2024 14:08:32 | jlaire | 8054 |
13.09.2024 23:56:08 | jlaire | 8055 |
15.09.2024 21:02:39 | jlaire | 8056 |
20.09.2024 19:29:47 | jlaire | 8057 |
25.09.2024 10:51:55 | jlaire | 8058 |
03.10.2024 22:13:34 | jlaire | 8059 |
11.10.2024 03:38:13 | jlaire | 8060 |
23.10.2024 03:03:14 | jlaire | 8062 |
03.11.2024 04:36:56 | jlaire | 8063 |
17.11.2024 20:47:18 | jlaire | 8064 |
28.11.2024 14:17:42 | jlaire | 8065 |
07.12.2024 18:20:27 | jlaire | 8066 |
18.12.2024 17:13:59 | jlaire | 8067 |
02.02.2025 15:33:13 | jlaire | 8068 |
18.02.2025 16:05:32 | jlaire | 8069 |
01.03.2025 00:00:01 | jlaire | 8070 |
*) Ajat ennen 27.12.2010 ovat arvioita, koska tarkkaa aikaa ei ole tallennettu.
Kirjaudu sisään Ohjelmointiputkaan, niin voit lähettää vastauksen tehtävään.
Katso myös Putkaposti 15: Kielitiedettä.