[informatica] aaa.bbb

Moderators: ArcherBarry, Fuzzwood

Reageer
Berichten: 171

[informatica] aaa.bbb

Heey een vraagje over een spel.

ik heb de letters

AAA.BBB met 1 lege ruimte er tussen, die ruimte is voor precies 1 letter.

nu moet ik naar het eindtoestand komen:

BBB.AAA

je mag hierbij maar 1 zet tegelijkertijd doen.

bij die zet geldt t volgende:

De A's mogen alleen naar rechtsbewegen, ze mogen niet naar links of achteruit ofzo..

De B's mogen alleen naar links bewegen en niet achteruit of naar rechts ofzo..

een letter mag niet over een letter springen vandezelfde soort.Maar wel over een letter van de andere soort.

Dus A mag niet over A springen.

hier een voorbeeld:

AAA.BBB ==>

AA.ABBB ==>

AABA.BB ==>

AABAB.A ==>

AABABA. ==>

etc..

maar als er ergens geldt bijv; .AAABBB dan is er geen zet meer mogelijk

nu is de vraag: ik wil voor willekeurige aantal A's en B' een strategie maken en die met

c++ programmeren, kent iemand al een s ite over dit spel? of een strategie?

Gebruikersavatar
Berichten: 2.005

Re: [informatica] aaa.bbb

zijtjeszotjes schreef:De A's mogen alleen naar rechtsbewegen, ze mogen niet naar links of achteruit ofzo..

De B's mogen alleen naar links bewegen en niet achteruit of naar rechts ofzo..

AAA.BBB ==>

AA.ABBB ==>

AABA.BB ==>

AABAB.A ==>

AABABA. ==>

etc..
Bij de laatste stap, hier weergegeven, gaat een A naar links. En je zegt net zelf dat dat niet mag :)
...verhit de dichloormono-oxide tot 277 graden Celcius en geniet van het effect...

Gebruikersavatar
Berichten: 5.679

Re: [informatica] aaa.bbb

Misschien interpreteer ik je regels verkeerd, maar je kunt toch altijd eerst alle B's naar links halen en dan alle A's nog eentje naar rechts schuiven?

Dus zo: (de letter die beweegt even vet gemaakt om de strategie te verduidelijken)

AAA.BBB

AAAB.BB

AABA.BB

ABAA.BB

BAAA.BB

BAAAB.B

BAABA.B

BABAA.B

BBAAA.B

BBAAAB.

BBAABA.

BBABAA.

BBBAAA.

BBBAA.A

BBBA.AA

BBB.AAA

En dit werkt ook voor ieder ander aantal A's en B's (ook als er niet evenveel A's als B's zijn).
In theory, there's no difference between theory and practice. In practice, there is.

Berichten: 171

Re: [informatica] aaa.bbb

Op een smal bergpad, met aan de ene kant een diep ravijn en aan de andere

kant een steile bergwand, ontmoeten twee groepen geiten elkaar. De ene groep bestaat

uit n zwarte en de andere groep uit n witte geiten. De zwarte geiten komen van links en

de witte geiten van rechts. Op het moment dat ze stoppen is er tussen beide groepen nog

juist 1 geitlengte vrij. Deze beginsituatie kan bijvoorbeeld voor n = 4 worden weergegeven

als: zzzz wwww.

Een geit die voor een lege plek staat kan een geitlengte doorlopen. Er is echter geen ruimte

om elkaar op de gewone manier te passeren. De geiten hebben daar het volgende op

gevonden: een geit die door een geit van de andere kleur wordt gescheiden van een lege

plek kan over die andere heenspringen. Geiten springen dus nooit over geiten van de eigen

kleur heen.

De geiten kunnen zich niet omdraaien of achteruit lopen/springen, dus de zwarte geiten

bewegen alleen van links naar rechts en de witte geiten alleen van rechts naar links.

De bedoeling is dat de rechtsgaande en de linksgaande groep van plaats verwisseld worden,

zodat ze hun weg kunnen vervolgen. De eindsituatie voor bijvoorbeeld n = 4 is dan:

wwww zzzz. Het verwisselingsproces vindt plaats op een recht stukje pad dat precies plaats

biedt aan 2n + 1 geiten (er is dus altijd 1 plek open).

Opm. (Om misverstanden te voorkomen.) De zwarte en witte geiten hoeven niet om de

beurt te bewegen; het volgende is bijv. toegestaan:

zzzz.wwww ->zzz.zwwww ->zz.zzwwww->z zzzwwww etc

okeey. Ik heb een strategie nodig die ik zonder veel moeite in C++ kan programmeren.

bekijk:

AAA.BBB

AA.ABBB

AABA.BB

AABAB.B

AAB.BAB

A.BABAB

.ABABAB

BA.ABAB

--------------- vanaf hier symmetrisch, BA.ABAB is symmetrisch met BABA.AB etc..

BABA.AB

BABABA.

BABAB.A

BAB.BAA

B.BABAA

BB.ABAA

BBBA.AA

BBB.AAA

in 15 stappen. De strategie is eigenlijk zo:

beweeg 1 B

beweeg 2 G's

beweeg 3 B's

dan 1 G (eigenlijk 4 modulo 3).

etc...

in ieder geval..er is een symmetrie te zien in de stappen. Wat je doet in

de eerste helft, doe je weer in de tweede helft in omgekeerde volgorde voor de andere letter.

maar ik heb er nog moeite mee!

Reageer