11. december 2002 - 10:37Der er
12 kommentarer og 1 løsning
Ordgætteri - Danne ord af bogstaverne fra et andet ord
Jeg har fået en lille puzzle opgave..... Lav et program som kan danne alle ord ud fra bogstaverne fra et andet ord. Ugyldige bogstavs kombinationer skal sorteres fra ud fra en "ordbog" med gyldige ord (som jeg allerede har)
Ja, der er set ligende før, men de løsninger som jeg har set bruger alle bogstaverne i hvert dannet ord. I min opgave kan det dannede ord godt bestå af en delmængde af bogstaverne i det oprindelige ord. Et bogstav fra det oprindelige ord kan kun bruges samme antal gange som det forekommer i det oprindelige ord. Mellemrum er ikke tilladt
Eks. Ordet "andemad" kan danne ord som "den", "mand" og "andedam"
du er altså ude på at danne alle mulige 1-, 2-, ..., 7-tupler vha trækning uden tilbagelægning fra mængden {a,n,d,e,m,a,d} og slå dem op i ordbogen.
1) sørg for at du kan slå hurtigt op i ordbogen (brug en datastruktur, der giver hurtige opslag), du får brug for at slå meget op 2) slå ikke oplagte negativer op: * tupler kun med konsonanter * find selv på flere regler 3) selvom du sorterer fra i 2), så får du MANGE mulige ( 7! + 6! + .. + 2 + 1)
med mindre du har adgang til noget statistik på kendte bogstavkombinationer (der findes ord med 'de' men ikke med 'xx') så bliver du vel nødt til at bruge brute force.
for (int i=1; i<= length('andemad'); i++){ #denne løkke bestemmer tuplelængden her har du i pointere, som ikke må pege på samme element løkke for hver tuplelængde nu tæller du pointerne op, så det altid er den sidste pointer der tælles op. Når den sidste pointer rammer length('andemad'), tælles den næstsidste pointer op og de efterfølgende pointere nulstilles. end løkke }
Killer Bee -> Jeg har forsøgt mig lidt med dit svar, men det virker ikke helt (compile error) og det har knebet gevaldigt med at finde tid til at puzzle vidre, men det håber jeg at få om en uges tid fra nu.
Jeg regnede med at selv ville kunne regne ud at feks CTesterDlg i erklæringen af funktionerne skal erstates med det klasse som du bruger i din applikation,eller fjern det helt og gør funktionerne globale.
Jeg fostår ikke du har problemmer med det fordi det er bare ctrl-c ctrl-v dem i din applikation... jeg har testet den i min TesterApp ved at udskrive alle ord i en txt fil.. og det virker..
Fik det ikke til at virke, så det er lagt på hylden...
Noget forsinket kommer her lidt point for forsøget.
Synes godt om
Ny brugerNybegynder
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.