Pa dienu nesanāk laika ne īsti padomāt, ne uzrakstīt. Tagad mierīgā atmosfērā izdomāju, kā ar 3 vārdu palindromiem tikt galā ļoti ātri:
1) Tā kā frāzei jābūt vienādai no abiem galiem, pa priekšu atrodam pirmo un trešo vārdu, atlasot no 500 tūkstošiem tos, kur pirmais vārds pilnībā ietilpst trešā vārda reversajā versijā;
2) Tālāk meklējam otro vārdu, kam jābūt vismaz x burtus garam, kur x ir starpība starp trešā un pirmā vārda garumiem (pirmais <= trešais). Pie kam, ja x > 0, tad ir zināma meklējamā otrā vārda galotne - tā ir trešā vārda sākuma reversā versija. Ja x=0, tad par otro vārdu der jebkurš vienvārda palindroms.
Es biju domājis, ka trīs vienādi vārdi frāzē nav nekāda frāze, tāpēc aplūkoju tikai dažādus vārdus. Bet nu pēc definīcijas laikam Tev taisnība.
Pamēģināšu augstāk aprakstīto paņēmienu ar 180 tūkstošiem vārdu, ko es atradu OpenOffice vārdnīcā, domāju ka līdz rītam visi trīsvārdu varianti būs atrasti.
1) Tā kā frāzei jābūt vienādai no abiem galiem, pa priekšu atrodam pirmo un trešo vārdu, atlasot no 500 tūkstošiem tos, kur pirmais vārds pilnībā ietilpst trešā vārda reversajā versijā;
2) Tālāk meklējam otro vārdu, kam jābūt vismaz x burtus garam, kur x ir starpība starp trešā un pirmā vārda garumiem (pirmais <= trešais). Pie kam, ja x > 0, tad ir zināma meklējamā otrā vārda galotne - tā ir trešā vārda sākuma reversā versija. Ja x=0, tad par otro vārdu der jebkurš vienvārda palindroms.
Es biju domājis, ka trīs vienādi vārdi frāzē nav nekāda frāze, tāpēc aplūkoju tikai dažādus vārdus. Bet nu pēc definīcijas laikam Tev taisnība.
Pamēģināšu augstāk aprakstīto paņēmienu ar 180 tūkstošiem vārdu, ko es atradu OpenOffice vārdnīcā, domāju ka līdz rītam visi trīsvārdu varianti būs atrasti.