Springen naar inhoud

[informatica] aaa.bbb


  • Log in om te kunnen reageren

#1

zijtjeszotjes

    zijtjeszotjes


  • >100 berichten
  • 171 berichten
  • Ervaren gebruiker

Geplaatst op 02 april 2007 - 20:42

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?

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

PdeJongh

    PdeJongh


  • >1k berichten
  • 2005 berichten
  • VIP

Geplaatst op 02 april 2007 - 20:45

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...

#3

Rogier

    Rogier


  • >5k berichten
  • 5679 berichten
  • VIP

Geplaatst op 02 april 2007 - 21:19

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.

#4

zijtjeszotjes

    zijtjeszotjes


  • >100 berichten
  • 171 berichten
  • Ervaren gebruiker

Geplaatst op 03 april 2007 - 11:05

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!





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures