Programmering.
Kan ingen specifik algoritm, men du kan ju tänka på vilka tal som absolut inte kan bli ett palindrom.
Tal som slutar på 0 är ett exempel, så alla x eller y som slutar på 0 behöver du inte ens testa.
En liten optimering är att spara undan x*y istället för att räkna om den 3 gånger (gör inte så mycket, men ändå en liten grej)
Och sen kan du ju testa om x*y är större än största innan du testar om det är ett palindrom. Jag antar att testet av palindrom är mer krävande, så det är onödigt att testa om det inte ens är en kandidat till att vara det största.
Finns antagligen någon regel som säger att du bara behöver testa typ övre halvan av alla tal, eller nåt sånt, men det kan du kolla upp själv.
Citat från Rassilon
Sant, men datamängden minskar tyvärr bara med 1% för varje loop, då de tal som slutar på 0 tas bort, och i sammanhanget tror jag inte att det gör så mycket skillnad.
Förstås. Jag skall tänka på det.
Jag fick faktiskt ingen mätbar skillnad i tidsåtgång för programmet oavsett var jag placerade "if (x*y) > största_palindrom", men rent intuitivt så låter det förstås bättre att bara testa för palindrom bland de tal som är större än största_palindrom, precis som du föreslog.
Tack för dina förslag! Jag skall kolla vidare efter ytterligare förfiningar.
Ja, det blir nog ingen större skillnad på att bara ta bort de som slutar på noll, gav det mest som ett exempel på att alla tal inte nödvändigt behövs testas. Finns säkert någon matematiker som forskat på det där med palindromtal, så ska man hitta en perfekt algoritm kanske man kan läsa nån artikel om det finns. Det är ju förståss inte så kul läsning, och man kan säkert komma fram till något genom trial and error eller logiskt tänkande :)
Det är inte säkert att det finns bättre algoritmer, om det inte finns nån speciell regel för vad som kan bilda palindromtal.
Okej, då är funktionen kanske inte så krävande på så små tal, men om det skulle bli stora tal så kanske det ger mer.
Du skulle ju kunna köra den inre for-loopen baklänges, och sen bryta den och köra nästa iteration när du hittat ett palindromtal där (du kommer ju aldrig kunna hitta ett högre tal när du väl hittat det högsta i en iteration). Och sen på något sätt förhindra att du testar samma multiplikation två gånger (125 * 593 = 593 * 125) typ att inre for-loopen varierar sig. Jag vet inte om detta är möjligt i aktuellt språk men om det är det kan det vara värt ett försök!
Vet inte hur effektivt detta är, men det borde ge något.
Hoppas du förstår vad jag menar!
Citat från Rassilon
Tack! Mycket bra idéer. Jag skall testa att implementera dem när jag får tid.
Är fortsatt intresserad av eventuella förbättringar, om någon känner sig manad.
kan du inte bara köra med lite bitlogik och en table? det hade jag gjort om det bara är hastighet vi pratar om.
CSS är mys.
Damn, Bjarne Stroustrup's Keynote om "C++11 Style" är så otroligt nice.
Någon med DirectX kunskaper? Planer på att samla folk för att skapa spel till Windows Phone 8, RPG i stil med Golden Sun: The Lost Age.
Satte mig in i XNA i Windows Phone 7, men M$ har ju beslutat sig för att plocka bort XNA helt i framtiden.
Jag undrar lite spontant varför du väljer att göra ett spel till just Windows Phone när de flesta uppenbarligen använder iOS eller Android?
Skulle gissa för att Windows Phone inte är i närheten till lika saturerad som Android och iOS?
Precis. Jag undrar varför man skulle vilja "saturera"(fackspråk in my ass) Windows Phone.
Saturera mitt arsle.
För dom som inte har så stor koll på Windows Phone, så är det allra mest i Sverige och ett fåtal andra länder som det ej slagit igenom. I andra länder, så som Frankrike, Finland, Norge, större delen av afrika och västra delen asien, självklart även stora delar av USA, är Windows Phone väldigt populärt, och marknadsandelarna ökar kraftigt.
Kan tillägga att det finns teorier om att hela Androids ekosystem kommer att kollapsa inom ett par år då det ligger i lite av ett dödläge för OEMs. Tillverkare som Samsung blir stämda gång på gång, och då Google ej har något ansvar för mjukvaran OEMs använder får Samsung ta smällen. De som nyttjar Windows Phone i sin hårdvara har garanti från Microsoft, och om t.ex Nokia skulle bli stämda för något som har med OS att göra är det Microsoft som tar hand om det, Nokia blir ej negativt påverkade. Enbart om Nokia skulle bli stämda för själva formfaktorn på telefonen så är det de som får problem.
Så, jag väljer att i detta fall rikta in mig på ett ekosystem som ser ut att ha en mer stabil framtid, även om marknadsandelarna ännu inte blivit riktigt jämförbara med Android och iOS. Och det största problemet som är idag är arr utvecklare inte satsar tillräckligt på Windows Phone för det saknas användare, och möjliga användare väntar pga avsaknaden av appar. Men OSet är fortfarande ungt, och även Android hade det tufft i början, men lite lättare att öka då de har ett öppnare OS.
Well, bara mina åsikter.
Skojar du? Windows om något är väl på väg mot graven.
Har Sony fått någon riktig smäll än då och i såfall, tror du att den påverkar företaget ekonomiskt?
Du tror inte att det kan vara så att folk inte väljer att köpa en mobil med Windows Phone för att det är Kalle Anka som har programmerat och designat det?
Du måste vara inloggad för att skriva i forumet