|
|
\require{AMSmath}
Systematisch anagrammen maken
Ik wil in VisualBasic een programma schijven dat van een gegeven letterreeks (een woord) alle mogelijk anagrammen geeft. Nu wilde ik hiervoor een n-tallig stelsel maken waarin n het aantal tekens van de reeks is.
Voorbeeld: Tom: T=0 o=1 m=2 Dus een 3-tallig stelsel.
Als ik dan in het n-tallig stelsel alle getallen van 0 tot nn achter elkaar zet, en de cijfers vervang door de gegeven tekens heb ik alle mogelijke opeenvolgingen van de tekens. Echter moeten dan wel alle dubbele (zoals 233=omm, dit is geen anagram van Tom) eruit, maar dat is wiskundig niet het meest complexe.
Mijn vraag is een algoritme waarmee ik een niet-10-tallig stelsel kan opbouwen. Ik werk in een programmeertaal dus iteratie en dergelijke zijn geen probleem.
Bij voorbaat dank Tom
Tom
Leerling bovenbouw havo-vwo - woensdag 15 juni 2005
Antwoord
Zoiets? (in Delphi):
var i,n: integer;
function base_10_to_base_basis(getal,basis:integer):string; var s:string; begin s:=''; while getal0 do begin s:=inttostr(getal mod basis)+s; getal:=getal div basis end; base_10_to_base_basis:=s; end;
begin n:=4; for i:=1 to trunc(power(n,n))-1 do memo1.lines.add(base_10_to_base_basis(i,n)) end;
|
Vragen naar aanleiding van dit antwoord? Klik rechts..!
donderdag 16 juni 2005
|
|
home |
vandaag |
bijzonder |
gastenboek |
statistieken |
wie is wie? |
verhalen |
colofon
©2001-2024 WisFaq - versie 3
|