Icecap:
Jag har haft dem tankarna med, att lösa det med AND operationer. Det fungerar som sagt med 2 variabler. Men jag har inte lyckats få det att fungera med fler tal.
Jag hade en "divide and conquer" lösning på gång som ungefär gick ut på att man ANDar ihop två tal och tar reda på om det var en strikt majoritet som blev resultatet, dvs båda talen var samma. Sen skickar man det vidare och slår ihop resultatet från två sådana röstningar osv. Blir en form av trädstrukturslösning.
Kod: Markera allt
tal1
-----|
tal2 | resultat från övre
|----resulttat från unre ---> osv
tal3 |
-----|
tal4
problemet är att jag antog att om man slår ihop två resultat där man har två olika majoriteter från den undre nivån så tar jag och ANDar ihop resultet och får rätt svar, vilket inte stämmer. Svårt att förklara, men jag kunde inte komma på ett ihoslagnings steg som fungerar i alla fall. Men det är mycket möjligt att det finns ett sätt att lösa problemet på detta sätt.
Exile:
Jag har lite svårt att direkt se hur din kod fungerar. Jag får återkomma imorrn när jag tänkt lite. Men när jag sa 32 gånger snabbare så var det på ett ungefär. Har man läst algoritm kurser så blir man lite skadad och tycker att alla berökningar som är konstanta inte räknas om man har tex. en for loop som görs många gånger.
EDIT:
här är en metod som jag har tittat på, det löser inte exakt mitt problem men det kanske går att modifiera så att det fungerar. Här används sekvensnät och karnaaugh diagram för att uttnytjja enbart booleansk logik.
http://www.dattalo.com/technical/softwa ... rtcnt.html