Code Golf: Phone Number to Words - language-agnostic
Locked. This question and its answers are locked because the question is off-topic but has historical significance. It is not currently accepting new answers or interactions.
Guidelines for code-golf on SO
We've all seen phone numbers that are put into words: 1-800-BUY-MORE, etc.
What is the shortest amount of code you can write that will produce all the possible combinations of words for a 7 digit US phone number.
Input will be a seven-digit integer (or string, if that is simpler), and assume that the input is properly formed.
Output will be a list of seven-character strings that
For instance, the number 428-5246 would produce
GATJAGM
GATJAGN
GATJAGO
GATJAHM
GATJAHN
GATJAGO
GATJAIM
GATJAIN
GATJAIO
and so on.....
Winning criterion will be code from any language with the fewest characters that produces every possible letter combination.
Additional Notes:
To make it more interesting, words
can be formed only by using the
letters on a North American Classic
Key Pad phone with three letters
per number as defined here.That means that Z and Q are excluded.
For the number '1', put a space.
For the number '0', put a hyphen '-'
Bonus points awarded for recognizing output as real English words. Okay, not really. ;-)
Added: Okay, lets go with "Nick's Modified North American Classic Key Pad" which has an 'O' (oh, not zero) on the 6 key.
Python, 107 chars
f=lambda p:p and[i+j for i in'O 1 ABC DEF GHI JKL MN PRS TUV WXY'.split()
[int(p[0])]for j in f(p[1:])]or[p]
Python, 122 chars (older version with reduce)
f=lambda p:reduce(lambda x,y:[i+j for i in x for j in y],
['O 1 ABC DEF GHI JKL MN PRS TUV WXY'.split()[int(k)]for k in p])
ps. Gimme some "thumbs up", new here and i need the votes
Example use:
>>> len(f('4285246'))
1458
>>> f('4285246')
['GATJAGM', 'GATJAGN', 'GATJAHM', 'GATJAHN', 'GATJAIM', 'GATJAIN', 'GATJBGM', 'GATJBGN', 'GATJBHM', 'GATJBHN', 'GATJBIM', 'GATJBIN', 'GATJCGM', 'GATJCGN', 'GATJCHM', 'GATJCHN', 'GATJCIM', 'GATJCIN', 'GATKAGM', 'GATKAGN', 'GATKAHM', 'GATKAHN', 'GATKAIM', 'GATKAIN', 'GATKBGM', 'GATKBGN', 'GATKBHM', 'GATKBHN', 'GATKBIM', 'GATKBIN', 'GATKCGM', 'GATKCGN', 'GATKCHM', 'GATKCHN', 'GATKCIM', 'GATKCIN', 'GATLAGM', 'GATLAGN', 'GATLAHM', 'GATLAHN', 'GATLAIM', 'GATLAIN', 'GATLBGM', 'GATLBGN', 'GATLBHM', 'GATLBHN', 'GATLBIM', 'GATLBIN', 'GATLCGM', 'GATLCGN', 'GATLCHM', 'GATLCHN', 'GATLCIM', 'GATLCIN', 'GAUJAGM', 'GAUJAGN', 'GAUJAHM', 'GAUJAHN', 'GAUJAIM', 'GAUJAIN', 'GAUJBGM', 'GAUJBGN', 'GAUJBHM', 'GAUJBHN', 'GAUJBIM', 'GAUJBIN', 'GAUJCGM', 'GAUJCGN', 'GAUJCHM', 'GAUJCHN', 'GAUJCIM', 'GAUJCIN', 'GAUKAGM', 'GAUKAGN', 'GAUKAHM', 'GAUKAHN', 'GAUKAIM', 'GAUKAIN', 'GAUKBGM', 'GAUKBGN', 'GAUKBHM', 'GAUKBHN', 'GAUKBIM', 'GAUKBIN', 'GAUKCGM', 'GAUKCGN', 'GAUKCHM', 'GAUKCHN', 'GAUKCIM', 'GAUKCIN', 'GAULAGM', 'GAULAGN', 'GAULAHM', 'GAULAHN', 'GAULAIM', 'GAULAIN', 'GAULBGM', 'GAULBGN', 'GAULBHM', 'GAULBHN', 'GAULBIM', 'GAULBIN', 'GAULCGM', 'GAULCGN', 'GAULCHM', 'GAULCHN', 'GAULCIM', 'GAULCIN', 'GAVJAGM', 'GAVJAGN', 'GAVJAHM', 'GAVJAHN', 'GAVJAIM', 'GAVJAIN', 'GAVJBGM', 'GAVJBGN', 'GAVJBHM', 'GAVJBHN', 'GAVJBIM', 'GAVJBIN', 'GAVJCGM', 'GAVJCGN', 'GAVJCHM', 'GAVJCHN', 'GAVJCIM', 'GAVJCIN', 'GAVKAGM', 'GAVKAGN', 'GAVKAHM', 'GAVKAHN', 'GAVKAIM', 'GAVKAIN', 'GAVKBGM', 'GAVKBGN', 'GAVKBHM', 'GAVKBHN', 'GAVKBIM', 'GAVKBIN', 'GAVKCGM', 'GAVKCGN', 'GAVKCHM', 'GAVKCHN', 'GAVKCIM', 'GAVKCIN', 'GAVLAGM', 'GAVLAGN', 'GAVLAHM', 'GAVLAHN', 'GAVLAIM', 'GAVLAIN', 'GAVLBGM', 'GAVLBGN', 'GAVLBHM', 'GAVLBHN', 'GAVLBIM', 'GAVLBIN', 'GAVLCGM', 'GAVLCGN', 'GAVLCHM', 'GAVLCHN', 'GAVLCIM', 'GAVLCIN', 'GBTJAGM', 'GBTJAGN', 'GBTJAHM', 'GBTJAHN', 'GBTJAIM', 'GBTJAIN', 'GBTJBGM', 'GBTJBGN', 'GBTJBHM', 'GBTJBHN', 'GBTJBIM', 'GBTJBIN', 'GBTJCGM', 'GBTJCGN', 'GBTJCHM', 'GBTJCHN', 'GBTJCIM', 'GBTJCIN', 'GBTKAGM', 'GBTKAGN', 'GBTKAHM', 'GBTKAHN', 'GBTKAIM', 'GBTKAIN', 'GBTKBGM', 'GBTKBGN', 'GBTKBHM', 'GBTKBHN', 'GBTKBIM', 'GBTKBIN', 'GBTKCGM', 'GBTKCGN', 'GBTKCHM', 'GBTKCHN', 'GBTKCIM', 'GBTKCIN', 'GBTLAGM', 'GBTLAGN', 'GBTLAHM', 'GBTLAHN', 'GBTLAIM', 'GBTLAIN', 'GBTLBGM', 'GBTLBGN', 'GBTLBHM', 'GBTLBHN', 'GBTLBIM', 'GBTLBIN', 'GBTLCGM', 'GBTLCGN', 'GBTLCHM', 'GBTLCHN', 'GBTLCIM', 'GBTLCIN', 'GBUJAGM', 'GBUJAGN', 'GBUJAHM', 'GBUJAHN', 'GBUJAIM', 'GBUJAIN', 'GBUJBGM', 'GBUJBGN', 'GBUJBHM', 'GBUJBHN', 'GBUJBIM', 'GBUJBIN', 'GBUJCGM', 'GBUJCGN', 'GBUJCHM', 'GBUJCHN', 'GBUJCIM', 'GBUJCIN', 'GBUKAGM', 'GBUKAGN', 'GBUKAHM', 'GBUKAHN', 'GBUKAIM', 'GBUKAIN', 'GBUKBGM', 'GBUKBGN', 'GBUKBHM', 'GBUKBHN', 'GBUKBIM', 'GBUKBIN', 'GBUKCGM', 'GBUKCGN', 'GBUKCHM', 'GBUKCHN', 'GBUKCIM', 'GBUKCIN', 'GBULAGM', 'GBULAGN', 'GBULAHM', 'GBULAHN', 'GBULAIM', 'GBULAIN', 'GBULBGM', 'GBULBGN', 'GBULBHM', 'GBULBHN', 'GBULBIM', 'GBULBIN', 'GBULCGM', 'GBULCGN', 'GBULCHM', 'GBULCHN', 'GBULCIM', 'GBULCIN', 'GBVJAGM', 'GBVJAGN', 'GBVJAHM', 'GBVJAHN', 'GBVJAIM', 'GBVJAIN', 'GBVJBGM', 'GBVJBGN', 'GBVJBHM', 'GBVJBHN', 'GBVJBIM', 'GBVJBIN', 'GBVJCGM', 'GBVJCGN', 'GBVJCHM', 'GBVJCHN', 'GBVJCIM', 'GBVJCIN', 'GBVKAGM', 'GBVKAGN', 'GBVKAHM', 'GBVKAHN', 'GBVKAIM', 'GBVKAIN', 'GBVKBGM', 'GBVKBGN', 'GBVKBHM', 'GBVKBHN', 'GBVKBIM', 'GBVKBIN', 'GBVKCGM', 'GBVKCGN', 'GBVKCHM', 'GBVKCHN', 'GBVKCIM', 'GBVKCIN', 'GBVLAGM', 'GBVLAGN', 'GBVLAHM', 'GBVLAHN', 'GBVLAIM', 'GBVLAIN', 'GBVLBGM', 'GBVLBGN', 'GBVLBHM', 'GBVLBHN', 'GBVLBIM', 'GBVLBIN', 'GBVLCGM', 'GBVLCGN', 'GBVLCHM', 'GBVLCHN', 'GBVLCIM', 'GBVLCIN', 'GCTJAGM', 'GCTJAGN', 'GCTJAHM', 'GCTJAHN', 'GCTJAIM', 'GCTJAIN', 'GCTJBGM', 'GCTJBGN', 'GCTJBHM', 'GCTJBHN', 'GCTJBIM', 'GCTJBIN', 'GCTJCGM', 'GCTJCGN', 'GCTJCHM', 'GCTJCHN', 'GCTJCIM', 'GCTJCIN', 'GCTKAGM', 'GCTKAGN', 'GCTKAHM', 'GCTKAHN', 'GCTKAIM', 'GCTKAIN', 'GCTKBGM', 'GCTKBGN', 'GCTKBHM', 'GCTKBHN', 'GCTKBIM', 'GCTKBIN', 'GCTKCGM', 'GCTKCGN', 'GCTKCHM', 'GCTKCHN', 'GCTKCIM', 'GCTKCIN', 'GCTLAGM', 'GCTLAGN', 'GCTLAHM', 'GCTLAHN', 'GCTLAIM', 'GCTLAIN', 'GCTLBGM', 'GCTLBGN', 'GCTLBHM', 'GCTLBHN', 'GCTLBIM', 'GCTLBIN', 'GCTLCGM', 'GCTLCGN', 'GCTLCHM', 'GCTLCHN', 'GCTLCIM', 'GCTLCIN', 'GCUJAGM', 'GCUJAGN', 'GCUJAHM', 'GCUJAHN', 'GCUJAIM', 'GCUJAIN', 'GCUJBGM', 'GCUJBGN', 'GCUJBHM', 'GCUJBHN', 'GCUJBIM', 'GCUJBIN', 'GCUJCGM', 'GCUJCGN', 'GCUJCHM', 'GCUJCHN', 'GCUJCIM', 'GCUJCIN', 'GCUKAGM', 'GCUKAGN', 'GCUKAHM', 'GCUKAHN', 'GCUKAIM', 'GCUKAIN', 'GCUKBGM', 'GCUKBGN', 'GCUKBHM', 'GCUKBHN', 'GCUKBIM', 'GCUKBIN', 'GCUKCGM', 'GCUKCGN', 'GCUKCHM', 'GCUKCHN', 'GCUKCIM', 'GCUKCIN', 'GCULAGM', 'GCULAGN', 'GCULAHM', 'GCULAHN', 'GCULAIM', 'GCULAIN', 'GCULBGM', 'GCULBGN', 'GCULBHM', 'GCULBHN', 'GCULBIM', 'GCULBIN', 'GCULCGM', 'GCULCGN', 'GCULCHM', 'GCULCHN', 'GCULCIM', 'GCULCIN', 'GCVJAGM', 'GCVJAGN', 'GCVJAHM', 'GCVJAHN', 'GCVJAIM', 'GCVJAIN', 'GCVJBGM', 'GCVJBGN', 'GCVJBHM', 'GCVJBHN', 'GCVJBIM', 'GCVJBIN', 'GCVJCGM', 'GCVJCGN', 'GCVJCHM', 'GCVJCHN', 'GCVJCIM', 'GCVJCIN', 'GCVKAGM', 'GCVKAGN', 'GCVKAHM', 'GCVKAHN', 'GCVKAIM', 'GCVKAIN', 'GCVKBGM', 'GCVKBGN', 'GCVKBHM', 'GCVKBHN', 'GCVKBIM', 'GCVKBIN', 'GCVKCGM', 'GCVKCGN', 'GCVKCHM', 'GCVKCHN', 'GCVKCIM', 'GCVKCIN', 'GCVLAGM', 'GCVLAGN', 'GCVLAHM', 'GCVLAHN', 'GCVLAIM', 'GCVLAIN', 'GCVLBGM', 'GCVLBGN', 'GCVLBHM', 'GCVLBHN', 'GCVLBIM', 'GCVLBIN', 'GCVLCGM', 'GCVLCGN', 'GCVLCHM', 'GCVLCHN', 'GCVLCIM', 'GCVLCIN', 'HATJAGM', 'HATJAGN', 'HATJAHM', 'HATJAHN', 'HATJAIM', 'HATJAIN', 'HATJBGM', 'HATJBGN', 'HATJBHM', 'HATJBHN', 'HATJBIM', 'HATJBIN', 'HATJCGM', 'HATJCGN', 'HATJCHM', 'HATJCHN', 'HATJCIM', 'HATJCIN', 'HATKAGM', 'HATKAGN', 'HATKAHM', 'HATKAHN', 'HATKAIM', 'HATKAIN', 'HATKBGM', 'HATKBGN', 'HATKBHM', 'HATKBHN', 'HATKBIM', 'HATKBIN', 'HATKCGM', 'HATKCGN', 'HATKCHM', 'HATKCHN', 'HATKCIM', 'HATKCIN', 'HATLAGM', 'HATLAGN', 'HATLAHM', 'HATLAHN', 'HATLAIM', 'HATLAIN', 'HATLBGM', 'HATLBGN', 'HATLBHM', 'HATLBHN', 'HATLBIM', 'HATLBIN', 'HATLCGM', 'HATLCGN', 'HATLCHM', 'HATLCHN', 'HATLCIM', 'HATLCIN', 'HAUJAGM', 'HAUJAGN', 'HAUJAHM', 'HAUJAHN', 'HAUJAIM', 'HAUJAIN', 'HAUJBGM', 'HAUJBGN', 'HAUJBHM', 'HAUJBHN', 'HAUJBIM', 'HAUJBIN', 'HAUJCGM', 'HAUJCGN', 'HAUJCHM', 'HAUJCHN', 'HAUJCIM', 'HAUJCIN', 'HAUKAGM', 'HAUKAGN', 'HAUKAHM', 'HAUKAHN', 'HAUKAIM', 'HAUKAIN', 'HAUKBGM', 'HAUKBGN', 'HAUKBHM', 'HAUKBHN', 'HAUKBIM', 'HAUKBIN', 'HAUKCGM', 'HAUKCGN', 'HAUKCHM', 'HAUKCHN', 'HAUKCIM', 'HAUKCIN', 'HAULAGM', 'HAULAGN', 'HAULAHM', 'HAULAHN', 'HAULAIM', 'HAULAIN', 'HAULBGM', 'HAULBGN', 'HAULBHM', 'HAULBHN', 'HAULBIM', 'HAULBIN', 'HAULCGM', 'HAULCGN', 'HAULCHM', 'HAULCHN', 'HAULCIM', 'HAULCIN', 'HAVJAGM', 'HAVJAGN', 'HAVJAHM', 'HAVJAHN', 'HAVJAIM', 'HAVJAIN', 'HAVJBGM', 'HAVJBGN', 'HAVJBHM', 'HAVJBHN', 'HAVJBIM', 'HAVJBIN', 'HAVJCGM', 'HAVJCGN', 'HAVJCHM', 'HAVJCHN', 'HAVJCIM', 'HAVJCIN', 'HAVKAGM', 'HAVKAGN', 'HAVKAHM', 'HAVKAHN', 'HAVKAIM', 'HAVKAIN', 'HAVKBGM', 'HAVKBGN', 'HAVKBHM', 'HAVKBHN', 'HAVKBIM', 'HAVKBIN', 'HAVKCGM', 'HAVKCGN', 'HAVKCHM', 'HAVKCHN', 'HAVKCIM', 'HAVKCIN', 'HAVLAGM', 'HAVLAGN', 'HAVLAHM', 'HAVLAHN', 'HAVLAIM', 'HAVLAIN', 'HAVLBGM', 'HAVLBGN', 'HAVLBHM', 'HAVLBHN', 'HAVLBIM', 'HAVLBIN', 'HAVLCGM', 'HAVLCGN', 'HAVLCHM', 'HAVLCHN', 'HAVLCIM', 'HAVLCIN', 'HBTJAGM', 'HBTJAGN', 'HBTJAHM', 'HBTJAHN', 'HBTJAIM', 'HBTJAIN', 'HBTJBGM', 'HBTJBGN', 'HBTJBHM', 'HBTJBHN', 'HBTJBIM', 'HBTJBIN', 'HBTJCGM', 'HBTJCGN', 'HBTJCHM', 'HBTJCHN', 'HBTJCIM', 'HBTJCIN', 'HBTKAGM', 'HBTKAGN', 'HBTKAHM', 'HBTKAHN', 'HBTKAIM', 'HBTKAIN', 'HBTKBGM', 'HBTKBGN', 'HBTKBHM', 'HBTKBHN', 'HBTKBIM', 'HBTKBIN', 'HBTKCGM', 'HBTKCGN', 'HBTKCHM', 'HBTKCHN', 'HBTKCIM', 'HBTKCIN', 'HBTLAGM', 'HBTLAGN', 'HBTLAHM', 'HBTLAHN', 'HBTLAIM', 'HBTLAIN', 'HBTLBGM', 'HBTLBGN', 'HBTLBHM', 'HBTLBHN', 'HBTLBIM', 'HBTLBIN', 'HBTLCGM', 'HBTLCGN', 'HBTLCHM', 'HBTLCHN', 'HBTLCIM', 'HBTLCIN', 'HBUJAGM', 'HBUJAGN', 'HBUJAHM', 'HBUJAHN', 'HBUJAIM', 'HBUJAIN', 'HBUJBGM', 'HBUJBGN', 'HBUJBHM', 'HBUJBHN', 'HBUJBIM', 'HBUJBIN', 'HBUJCGM', 'HBUJCGN', 'HBUJCHM', 'HBUJCHN', 'HBUJCIM', 'HBUJCIN', 'HBUKAGM', 'HBUKAGN', 'HBUKAHM', 'HBUKAHN', 'HBUKAIM', 'HBUKAIN', 'HBUKBGM', 'HBUKBGN', 'HBUKBHM', 'HBUKBHN', 'HBUKBIM', 'HBUKBIN', 'HBUKCGM', 'HBUKCGN', 'HBUKCHM', 'HBUKCHN', 'HBUKCIM', 'HBUKCIN', 'HBULAGM', 'HBULAGN', 'HBULAHM', 'HBULAHN', 'HBULAIM', 'HBULAIN', 'HBULBGM', 'HBULBGN', 'HBULBHM', 'HBULBHN', 'HBULBIM', 'HBULBIN', 'HBULCGM', 'HBULCGN', 'HBULCHM', 'HBULCHN', 'HBULCIM', 'HBULCIN', 'HBVJAGM', 'HBVJAGN', 'HBVJAHM', 'HBVJAHN', 'HBVJAIM', 'HBVJAIN', 'HBVJBGM', 'HBVJBGN', 'HBVJBHM', 'HBVJBHN', 'HBVJBIM', 'HBVJBIN', 'HBVJCGM', 'HBVJCGN', 'HBVJCHM', 'HBVJCHN', 'HBVJCIM', 'HBVJCIN', 'HBVKAGM', 'HBVKAGN', 'HBVKAHM', 'HBVKAHN', 'HBVKAIM', 'HBVKAIN', 'HBVKBGM', 'HBVKBGN', 'HBVKBHM', 'HBVKBHN', 'HBVKBIM', 'HBVKBIN', 'HBVKCGM', 'HBVKCGN', 'HBVKCHM', 'HBVKCHN', 'HBVKCIM', 'HBVKCIN', 'HBVLAGM', 'HBVLAGN', 'HBVLAHM', 'HBVLAHN', 'HBVLAIM', 'HBVLAIN', 'HBVLBGM', 'HBVLBGN', 'HBVLBHM', 'HBVLBHN', 'HBVLBIM', 'HBVLBIN', 'HBVLCGM', 'HBVLCGN', 'HBVLCHM', 'HBVLCHN', 'HBVLCIM', 'HBVLCIN', 'HCTJAGM', 'HCTJAGN', 'HCTJAHM', 'HCTJAHN', 'HCTJAIM', 'HCTJAIN', 'HCTJBGM', 'HCTJBGN', 'HCTJBHM', 'HCTJBHN', 'HCTJBIM', 'HCTJBIN', 'HCTJCGM', 'HCTJCGN', 'HCTJCHM', 'HCTJCHN', 'HCTJCIM', 'HCTJCIN', 'HCTKAGM', 'HCTKAGN', 'HCTKAHM', 'HCTKAHN', 'HCTKAIM', 'HCTKAIN', 'HCTKBGM', 'HCTKBGN', 'HCTKBHM', 'HCTKBHN', 'HCTKBIM', 'HCTKBIN', 'HCTKCGM', 'HCTKCGN', 'HCTKCHM', 'HCTKCHN', 'HCTKCIM', 'HCTKCIN', 'HCTLAGM', 'HCTLAGN', 'HCTLAHM', 'HCTLAHN', 'HCTLAIM', 'HCTLAIN', 'HCTLBGM', 'HCTLBGN', 'HCTLBHM', 'HCTLBHN', 'HCTLBIM', 'HCTLBIN', 'HCTLCGM', 'HCTLCGN', 'HCTLCHM', 'HCTLCHN', 'HCTLCIM', 'HCTLCIN', 'HCUJAGM', 'HCUJAGN', 'HCUJAHM', 'HCUJAHN', 'HCUJAIM', 'HCUJAIN', 'HCUJBGM', 'HCUJBGN', 'HCUJBHM', 'HCUJBHN', 'HCUJBIM', 'HCUJBIN', 'HCUJCGM', 'HCUJCGN', 'HCUJCHM', 'HCUJCHN', 'HCUJCIM', 'HCUJCIN', 'HCUKAGM', 'HCUKAGN', 'HCUKAHM', 'HCUKAHN', 'HCUKAIM', 'HCUKAIN', 'HCUKBGM', 'HCUKBGN', 'HCUKBHM', 'HCUKBHN', 'HCUKBIM', 'HCUKBIN', 'HCUKCGM', 'HCUKCGN', 'HCUKCHM', 'HCUKCHN', 'HCUKCIM', 'HCUKCIN', 'HCULAGM', 'HCULAGN', 'HCULAHM', 'HCULAHN', 'HCULAIM', 'HCULAIN', 'HCULBGM', 'HCULBGN', 'HCULBHM', 'HCULBHN', 'HCULBIM', 'HCULBIN', 'HCULCGM', 'HCULCGN', 'HCULCHM', 'HCULCHN', 'HCULCIM', 'HCULCIN', 'HCVJAGM', 'HCVJAGN', 'HCVJAHM', 'HCVJAHN', 'HCVJAIM', 'HCVJAIN', 'HCVJBGM', 'HCVJBGN', 'HCVJBHM', 'HCVJBHN', 'HCVJBIM', 'HCVJBIN', 'HCVJCGM', 'HCVJCGN', 'HCVJCHM', 'HCVJCHN', 'HCVJCIM', 'HCVJCIN', 'HCVKAGM', 'HCVKAGN', 'HCVKAHM', 'HCVKAHN', 'HCVKAIM', 'HCVKAIN', 'HCVKBGM', 'HCVKBGN', 'HCVKBHM', 'HCVKBHN', 'HCVKBIM', 'HCVKBIN', 'HCVKCGM', 'HCVKCGN', 'HCVKCHM', 'HCVKCHN', 'HCVKCIM', 'HCVKCIN', 'HCVLAGM', 'HCVLAGN', 'HCVLAHM', 'HCVLAHN', 'HCVLAIM', 'HCVLAIN', 'HCVLBGM', 'HCVLBGN', 'HCVLBHM', 'HCVLBHN', 'HCVLBIM', 'HCVLBIN', 'HCVLCGM', 'HCVLCGN', 'HCVLCHM', 'HCVLCHN', 'HCVLCIM', 'HCVLCIN', 'IATJAGM', 'IATJAGN', 'IATJAHM', 'IATJAHN', 'IATJAIM', 'IATJAIN', 'IATJBGM', 'IATJBGN', 'IATJBHM', 'IATJBHN', 'IATJBIM', 'IATJBIN', 'IATJCGM', 'IATJCGN', 'IATJCHM', 'IATJCHN', 'IATJCIM', 'IATJCIN', 'IATKAGM', 'IATKAGN', 'IATKAHM', 'IATKAHN', 'IATKAIM', 'IATKAIN', 'IATKBGM', 'IATKBGN', 'IATKBHM', 'IATKBHN', 'IATKBIM', 'IATKBIN', 'IATKCGM', 'IATKCGN', 'IATKCHM', 'IATKCHN', 'IATKCIM', 'IATKCIN', 'IATLAGM', 'IATLAGN', 'IATLAHM', 'IATLAHN', 'IATLAIM', 'IATLAIN', 'IATLBGM', 'IATLBGN', 'IATLBHM', 'IATLBHN', 'IATLBIM', 'IATLBIN', 'IATLCGM', 'IATLCGN', 'IATLCHM', 'IATLCHN', 'IATLCIM', 'IATLCIN', 'IAUJAGM', 'IAUJAGN', 'IAUJAHM', 'IAUJAHN', 'IAUJAIM', 'IAUJAIN', 'IAUJBGM', 'IAUJBGN', 'IAUJBHM', 'IAUJBHN', 'IAUJBIM', 'IAUJBIN', 'IAUJCGM', 'IAUJCGN', 'IAUJCHM', 'IAUJCHN', 'IAUJCIM', 'IAUJCIN', 'IAUKAGM', 'IAUKAGN', 'IAUKAHM', 'IAUKAHN', 'IAUKAIM', 'IAUKAIN', 'IAUKBGM', 'IAUKBGN', 'IAUKBHM', 'IAUKBHN', 'IAUKBIM', 'IAUKBIN', 'IAUKCGM', 'IAUKCGN', 'IAUKCHM', 'IAUKCHN', 'IAUKCIM', 'IAUKCIN', 'IAULAGM', 'IAULAGN', 'IAULAHM', 'IAULAHN', 'IAULAIM', 'IAULAIN', 'IAULBGM', 'IAULBGN', 'IAULBHM', 'IAULBHN', 'IAULBIM', 'IAULBIN', 'IAULCGM', 'IAULCGN', 'IAULCHM', 'IAULCHN', 'IAULCIM', 'IAULCIN', 'IAVJAGM', 'IAVJAGN', 'IAVJAHM', 'IAVJAHN', 'IAVJAIM', 'IAVJAIN', 'IAVJBGM', 'IAVJBGN', 'IAVJBHM', 'IAVJBHN', 'IAVJBIM', 'IAVJBIN', 'IAVJCGM', 'IAVJCGN', 'IAVJCHM', 'IAVJCHN', 'IAVJCIM', 'IAVJCIN', 'IAVKAGM', 'IAVKAGN', 'IAVKAHM', 'IAVKAHN', 'IAVKAIM', 'IAVKAIN', 'IAVKBGM', 'IAVKBGN', 'IAVKBHM', 'IAVKBHN', 'IAVKBIM', 'IAVKBIN', 'IAVKCGM', 'IAVKCGN', 'IAVKCHM', 'IAVKCHN', 'IAVKCIM', 'IAVKCIN', 'IAVLAGM', 'IAVLAGN', 'IAVLAHM', 'IAVLAHN', 'IAVLAIM', 'IAVLAIN', 'IAVLBGM', 'IAVLBGN', 'IAVLBHM', 'IAVLBHN', 'IAVLBIM', 'IAVLBIN', 'IAVLCGM', 'IAVLCGN', 'IAVLCHM', 'IAVLCHN', 'IAVLCIM', 'IAVLCIN', 'IBTJAGM', 'IBTJAGN', 'IBTJAHM', 'IBTJAHN', 'IBTJAIM', 'IBTJAIN', 'IBTJBGM', 'IBTJBGN', 'IBTJBHM', 'IBTJBHN', 'IBTJBIM', 'IBTJBIN', 'IBTJCGM', 'IBTJCGN', 'IBTJCHM', 'IBTJCHN', 'IBTJCIM', 'IBTJCIN', 'IBTKAGM', 'IBTKAGN', 'IBTKAHM', 'IBTKAHN', 'IBTKAIM', 'IBTKAIN', 'IBTKBGM', 'IBTKBGN', 'IBTKBHM', 'IBTKBHN', 'IBTKBIM', 'IBTKBIN', 'IBTKCGM', 'IBTKCGN', 'IBTKCHM', 'IBTKCHN', 'IBTKCIM', 'IBTKCIN', 'IBTLAGM', 'IBTLAGN', 'IBTLAHM', 'IBTLAHN', 'IBTLAIM', 'IBTLAIN', 'IBTLBGM', 'IBTLBGN', 'IBTLBHM', 'IBTLBHN', 'IBTLBIM', 'IBTLBIN', 'IBTLCGM', 'IBTLCGN', 'IBTLCHM', 'IBTLCHN', 'IBTLCIM', 'IBTLCIN', 'IBUJAGM', 'IBUJAGN', 'IBUJAHM', 'IBUJAHN', 'IBUJAIM', 'IBUJAIN', 'IBUJBGM', 'IBUJBGN', 'IBUJBHM', 'IBUJBHN', 'IBUJBIM', 'IBUJBIN', 'IBUJCGM', 'IBUJCGN', 'IBUJCHM', 'IBUJCHN', 'IBUJCIM', 'IBUJCIN', 'IBUKAGM', 'IBUKAGN', 'IBUKAHM', 'IBUKAHN', 'IBUKAIM', 'IBUKAIN', 'IBUKBGM', 'IBUKBGN', 'IBUKBHM', 'IBUKBHN', 'IBUKBIM', 'IBUKBIN', 'IBUKCGM', 'IBUKCGN', 'IBUKCHM', 'IBUKCHN', 'IBUKCIM', 'IBUKCIN', 'IBULAGM', 'IBULAGN', 'IBULAHM', 'IBULAHN', 'IBULAIM', 'IBULAIN', 'IBULBGM', 'IBULBGN', 'IBULBHM', 'IBULBHN', 'IBULBIM', 'IBULBIN', 'IBULCGM', 'IBULCGN', 'IBULCHM', 'IBULCHN', 'IBULCIM', 'IBULCIN', 'IBVJAGM', 'IBVJAGN', 'IBVJAHM', 'IBVJAHN', 'IBVJAIM', 'IBVJAIN', 'IBVJBGM', 'IBVJBGN', 'IBVJBHM', 'IBVJBHN', 'IBVJBIM', 'IBVJBIN', 'IBVJCGM', 'IBVJCGN', 'IBVJCHM', 'IBVJCHN', 'IBVJCIM', 'IBVJCIN', 'IBVKAGM', 'IBVKAGN', 'IBVKAHM', 'IBVKAHN', 'IBVKAIM', 'IBVKAIN', 'IBVKBGM', 'IBVKBGN', 'IBVKBHM', 'IBVKBHN', 'IBVKBIM', 'IBVKBIN', 'IBVKCGM', 'IBVKCGN', 'IBVKCHM', 'IBVKCHN', 'IBVKCIM', 'IBVKCIN', 'IBVLAGM', 'IBVLAGN', 'IBVLAHM', 'IBVLAHN', 'IBVLAIM', 'IBVLAIN', 'IBVLBGM', 'IBVLBGN', 'IBVLBHM', 'IBVLBHN', 'IBVLBIM', 'IBVLBIN', 'IBVLCGM', 'IBVLCGN', 'IBVLCHM', 'IBVLCHN', 'IBVLCIM', 'IBVLCIN', 'ICTJAGM', 'ICTJAGN', 'ICTJAHM', 'ICTJAHN', 'ICTJAIM', 'ICTJAIN', 'ICTJBGM', 'ICTJBGN', 'ICTJBHM', 'ICTJBHN', 'ICTJBIM', 'ICTJBIN', 'ICTJCGM', 'ICTJCGN', 'ICTJCHM', 'ICTJCHN', 'ICTJCIM', 'ICTJCIN', 'ICTKAGM', 'ICTKAGN', 'ICTKAHM', 'ICTKAHN', 'ICTKAIM', 'ICTKAIN', 'ICTKBGM', 'ICTKBGN', 'ICTKBHM', 'ICTKBHN', 'ICTKBIM', 'ICTKBIN', 'ICTKCGM', 'ICTKCGN', 'ICTKCHM', 'ICTKCHN', 'ICTKCIM', 'ICTKCIN', 'ICTLAGM', 'ICTLAGN', 'ICTLAHM', 'ICTLAHN', 'ICTLAIM', 'ICTLAIN', 'ICTLBGM', 'ICTLBGN', 'ICTLBHM', 'ICTLBHN', 'ICTLBIM', 'ICTLBIN', 'ICTLCGM', 'ICTLCGN', 'ICTLCHM', 'ICTLCHN', 'ICTLCIM', 'ICTLCIN', 'ICUJAGM', 'ICUJAGN', 'ICUJAHM', 'ICUJAHN', 'ICUJAIM', 'ICUJAIN', 'ICUJBGM', 'ICUJBGN', 'ICUJBHM', 'ICUJBHN', 'ICUJBIM', 'ICUJBIN', 'ICUJCGM', 'ICUJCGN', 'ICUJCHM', 'ICUJCHN', 'ICUJCIM', 'ICUJCIN', 'ICUKAGM', 'ICUKAGN', 'ICUKAHM', 'ICUKAHN', 'ICUKAIM', 'ICUKAIN', 'ICUKBGM', 'ICUKBGN', 'ICUKBHM', 'ICUKBHN', 'ICUKBIM', 'ICUKBIN', 'ICUKCGM', 'ICUKCGN', 'ICUKCHM', 'ICUKCHN', 'ICUKCIM', 'ICUKCIN', 'ICULAGM', 'ICULAGN', 'ICULAHM', 'ICULAHN', 'ICULAIM', 'ICULAIN', 'ICULBGM', 'ICULBGN', 'ICULBHM', 'ICULBHN', 'ICULBIM', 'ICULBIN', 'ICULCGM', 'ICULCGN', 'ICULCHM', 'ICULCHN', 'ICULCIM', 'ICULCIN', 'ICVJAGM', 'ICVJAGN', 'ICVJAHM', 'ICVJAHN', 'ICVJAIM', 'ICVJAIN', 'ICVJBGM', 'ICVJBGN', 'ICVJBHM', 'ICVJBHN', 'ICVJBIM', 'ICVJBIN', 'ICVJCGM', 'ICVJCGN', 'ICVJCHM', 'ICVJCHN', 'ICVJCIM', 'ICVJCIN', 'ICVKAGM', 'ICVKAGN', 'ICVKAHM', 'ICVKAHN', 'ICVKAIM', 'ICVKAIN', 'ICVKBGM', 'ICVKBGN', 'ICVKBHM', 'ICVKBHN', 'ICVKBIM', 'ICVKBIN', 'ICVKCGM', 'ICVKCGN', 'ICVKCHM', 'ICVKCHN', 'ICVKCIM', 'ICVKCIN', 'ICVLAGM', 'ICVLAGN', 'ICVLAHM', 'ICVLAHN', 'ICVLAIM', 'ICVLAIN', 'ICVLBGM', 'ICVLBGN', 'ICVLBHM', 'ICVLBHN', 'ICVLBIM', 'ICVLBIN', 'ICVLCGM', 'ICVLCGN', 'ICVLCHM', 'ICVLCHN', 'ICVLCIM', 'ICVLCIN']
you may notice i am of the school 0->'O', 1->'1'. If that does not please you, change your literal to taste.
Mathematica, 87 characters-
Bonus Track below in version 3 (Generating Valid English Words)
This version includes the Q, hyphen, and space rules, as currently listed.
#<>""&/#Tuples#Join[{{"-"},{" "}},"A"~CharacterRange~"Y"~Drop~{17}~Partition~3][[#+1]]&
Mathematica: 98 chars
k[x_]:=Tuples[Table[Union[{{"-"},{1}},
Partition[CharacterRange["A","Y"],3]][[(x+1)[[i]]]],{i,1,7}]]
Please note the loooong names
Usage
k[{4,2,8,5,2,4,6}]
Edit>
It outputs only unique cases.
To count the unique sequences:
Length[k[{4,2,8,5,2,4,6}]]
Edit
Version 2: 96 Chars
k[x_]:=Tuples[Table[Union[{{"-"},{1}},
Partition[CharacterRange["A","Y"],3]][[(x+1)[[i]]]],{i,1}]]
Version 3: a Bonus track - Generating Valid English Words
I decided that Mathematica is very powerful but too verbose for a shorthand competition. Anyway, before bowing and leaving the "contest" I want to show up one more function, just for amusement, and for checking whether the statement "Bonus points awarded for recognizing output as real English words. Okay, not really. ;-)" was true or not.
The code is:
d[x_] := Join ## (DictionaryLookup[# <> ""] & /#
Tuples#Join[{{"-"}, {" "}},
"a"~CharacterRange~"y"~Drop~{17}~Partition~3][[x + 1]])
When called with
d[{7, 2, 3, 4, 7, 8, 4, 2}]
The result is
{"sadistic"}
When called with
d[{2,6,8,2,4}]
The result is
{"botch", "couch"}
And when called with
d[{3, 2, 4, 5}]
The result is
{"fail"}
Nice, isn't it?
q, 52 39 chars
(cross/)(3 cut"--- ",.Q.A except"QZ")
q is evaluated left of right.
.Q.A contains the vector "ABC...XYZ"
except returns x excluding values in y
join "--- " to the modified char vector
cut into chunks of 3
cross returns all possible combinations, and is applied across all chunks
q)(cross/)(3 cut"--- ",.Q.A except"QZ")[4 2 8 5 2 4 6]
"GATJAGM"
"GATJAGN"
"GATJAGO"
"GATJAHM"
"GATJAHN"
"GATJAHO"
"GATJAIM"
"GATJAIN"
"GATJAIO"
....
J, 60 62 65 67 characters
~.('--- ','Q'(~:#])25{.65|.a.){~((7$3)#:i.3^7)+"1]3*"."0":
Uses Nick's Modified North American Classic Key Pad.
~.('--- ','Q'(~:#])25{.65|.a.){~((7$3)#:i.3^7)+"1]3*"."0":4285246
...
ICTJCHM
ICTJCHN
ICTJCHO
ICTJCIM
ICTJCIN
ICTJCIO
ICTKAGM
ICTKAGN
ICTKAGO
ICTKAHM
ICTKAHN
ICTKAHO
ICTKAIM
ICTKAIN
ICTKAIO
ICTKBGM
ICTKBGN
ICTKBGO
ICTKBHM
ICTKBHN
ICTKBHO
ICTKBIM
ICTKBIN
ICTKBIO
ICTKCGM
ICTKCGN
ICTKCGO
ICTKCHM
ICTKCHN
ICTKCHO
ICTKCIM
ICTKCIN
ICTKCIO
ICTLAGM
ICTLAGN
ICTLAGO
ICTLAHM
ICTLAHN
ICTLAHO
ICTLAIM
ICTLAIN
ICTLAIO
ICTLBGM
ICTLBGN
ICTLBGO
ICTLBHM
ICTLBHN
ICTLBHO
ICTLBIM
ICTLBIN
ICTLBIO
ICTLCGM
ICTLCGN
ICTLCGO
ICTLCHM
ICTLCHN
ICTLCHO
ICTLCIM
ICTLCIN
ICTLCIO
ICUJAGM
ICUJAGN
ICUJAGO
ICUJAHM
ICUJAHN
ICUJAHO
ICUJAIM
ICUJAIN
ICUJAIO
ICUJBGM
ICUJBGN
ICUJBGO
ICUJBHM
ICUJBHN
ICUJBHO
ICUJBIM
ICUJBIN
ICUJBIO
ICUJCGM
ICUJCGN
ICUJCGO
ICUJCHM
ICUJCHN
ICUJCHO
ICUJCIM
ICUJCIN
ICUJCIO
ICUKAGM
ICUKAGN
ICUKAGO
ICUKAHM
ICUKAHN
ICUKAHO
ICUKAIM
ICUKAIN
ICUKAIO
ICUKBGM
ICUKBGN
ICUKBGO
ICUKBHM
ICUKBHN
ICUKBHO
ICUKBIM
ICUKBIN
ICUKBIO
ICUKCGM
ICUKCGN
ICUKCGO
ICUKCHM
ICUKCHN
ICUKCHO
ICUKCIM
ICUKCIN
ICUKCIO
ICULAGM
ICULAGN
ICULAGO
ICULAHM
ICULAHN
ICULAHO
ICULAIM
ICULAIN
ICULAIO
ICULBGM
ICULBGN
ICULBGO
ICULBHM
ICULBHN
ICULBHO
ICULBIM
ICULBIN
ICULBIO
ICULCGM
ICULCGN
ICULCGO
ICULCHM
ICULCHN
ICULCHO
ICULCIM
ICULCIN
ICULCIO
ICVJAGM
ICVJAGN
ICVJAGO
ICVJAHM
ICVJAHN
ICVJAHO
ICVJAIM
ICVJAIN
ICVJAIO
ICVJBGM
ICVJBGN
ICVJBGO
ICVJBHM
ICVJBHN
ICVJBHO
ICVJBIM
ICVJBIN
ICVJBIO
ICVJCGM
ICVJCGN
ICVJCGO
ICVJCHM
ICVJCHN
ICVJCHO
ICVJCIM
ICVJCIN
ICVJCIO
ICVKAGM
ICVKAGN
ICVKAGO
ICVKAHM
ICVKAHN
ICVKAHO
ICVKAIM
ICVKAIN
ICVKAIO
ICVKBGM
ICVKBGN
ICVKBGO
ICVKBHM
ICVKBHN
ICVKBHO
ICVKBIM
ICVKBIN
ICVKBIO
ICVKCGM
ICVKCGN
ICVKCGO
ICVKCHM
ICVKCHN
ICVKCHO
ICVKCIM
ICVKCIN
ICVKCIO
ICVLAGM
ICVLAGN
ICVLAGO
ICVLAHM
ICVLAHN
ICVLAHO
ICVLAIM
ICVLAIN
ICVLAIO
ICVLBGM
ICVLBGN
ICVLBGO
ICVLBHM
ICVLBHN
ICVLBHO
ICVLBIM
ICVLBIN
ICVLBIO
ICVLCGM
ICVLCGN
ICVLCGO
ICVLCHM
ICVLCHN
ICVLCHO
ICVLCIM
ICVLCIN
ICVLCIO
Haskell:
Just a pure function (69 78 chars)::
f=mapM(\x->("-":" ":words"ABC DEF GHI JKL MNO PRS TUV WXY")!!read[x])
Usage:
Prelude> f "626"
["MAM","MAN","MAO","MBM","MBN","MBO","MCM","MCN","MCO","NAM","NAN","NAO","NBM","NBN","NBO","NCM","NCN","NCO","OAM","OAN","OAO","OBM","OBN","OBO","OCM","OCN","OCO"]
As a full program (93 102 chars)::
main=getLine>>=mapM print.mapM(\x->("-":" ":words"ABC DEF GHI JKL MNO PRS TUV WXY")!!read[x])
Usage:
~$ ./a.out
626
"MAM"
"MAN"
"MAO"
"MBM"
"MBN"
"MBO"
"MCM"
"MCN"
"MCO"
"NAM"
"NAN"
"NAO"
"NBM"
"NBN"
"NBO"
"NCM"
"NCN"
"NCO"
"OAM"
"OAN"
"OAO"
"OBM"
"OBN"
"OBO"
"OCM"
"OCN"
"OCO"
Replace [...,"PRS","TUV","WXY"] with [...,"PQRS","TUV","WXYZ"] to get the international keypad, +2 chars.
Replace print with putStrLn to strip the quotation marks in output, +3 chars.
Newlines and whitespaces between symbol and words are added only to remove the horizontal scrollbar.
Perl, 101 chars:
This abuses the glob operator <{a,b,c}{d,e,f}> to calculate the cartesian product:
$,=$/;print eval"<{".(join"}{",map{s/\B/,/g;$_} # wrapped to fit
map{(0,1,join("",A..Z)=~/...S?Z?/g)[$_]}pop=~/./g)."}>"
as a program (111 chars):
perl -e'$,=$/;print eval"<{".(join"}{",map{s/\B/,/g;$_}map{(0,1,join("",A..Z)=~/...S?Z?/g)[$_]}pop=~/./g)."}>"' 4285246
Edit: incorporated mobrule's suggestions
Python, 157 139 119 chars:
Tabs and newlines counted... ;)
Now using "Nick's Modified Keypad"
def p(a,b=''):
if a:[p(a[1:],b+c)for c in '-, ,ABC,DEF,GHI,JKL,MNO,PRS,TUV,WXY'.split(',')[int(a[0])]];return
print b
Usage: (+12c)
p('4285246')
Ruby, 109 characters
l=%w{- \ ABC DEF GHI JKL MN PRS TUV WXY};p$_.chars.map{|d|[*l[d.to_i].chars]}.reduce(&:product).map{|x|x*""}
Usage:
echo "2345678" | ruby -lne 'l=%w{- \ ABC DEF GHI JKL MN PRS TUV WXY};p$_.chars.map{|d|[*l[d.to_i].chars]}.reduce(&:product).map{|x|x*""}'
Result for "2345678" - length 1458
ADGJMPT
ADGJMPU
ADGJMPV
ADGJMRT
ADGJMRU
ADGJMRV
ADGJMST
ADGJMSU
ADGJMSV
ADGJNPT
ADGJNPU
ADGJNPV
ADGJNRT
ADGJNRU
ADGJNRV
ADGJNST
ADGJNSU
ADGJNSV
ADGKMPT
ADGKMPU
ADGKMPV
ADGKMRT
ADGKMRU
ADGKMRV
ADGKMST
ADGKMSU
ADGKMSV
ADGKNPT
ADGKNPU
ADGKNPV
ADGKNRT
ADGKNRU
ADGKNRV
ADGKNST
ADGKNSU
ADGKNSV
ADGLMPT
ADGLMPU
ADGLMPV
ADGLMRT
ADGLMRU
ADGLMRV
ADGLMST
ADGLMSU
ADGLMSV
ADGLNPT
ADGLNPU
ADGLNPV
ADGLNRT
ADGLNRU
ADGLNRV
ADGLNST
ADGLNSU
ADGLNSV
ADHJMPT
ADHJMPU
ADHJMPV
ADHJMRT
ADHJMRU
ADHJMRV
ADHJMST
ADHJMSU
ADHJMSV
ADHJNPT
ADHJNPU
ADHJNPV
ADHJNRT
ADHJNRU
ADHJNRV
ADHJNST
ADHJNSU
ADHJNSV
ADHKMPT
ADHKMPU
ADHKMPV
ADHKMRT
ADHKMRU
ADHKMRV
ADHKMST
ADHKMSU
ADHKMSV
ADHKNPT
ADHKNPU
ADHKNPV
ADHKNRT
ADHKNRU
ADHKNRV
ADHKNST
ADHKNSU
ADHKNSV
ADHLMPT
ADHLMPU
ADHLMPV
ADHLMRT
ADHLMRU
ADHLMRV
ADHLMST
ADHLMSU
ADHLMSV
ADHLNPT
ADHLNPU
ADHLNPV
ADHLNRT
ADHLNRU
ADHLNRV
ADHLNST
ADHLNSU
ADHLNSV
ADIJMPT
ADIJMPU
ADIJMPV
ADIJMRT
ADIJMRU
ADIJMRV
ADIJMST
ADIJMSU
ADIJMSV
ADIJNPT
ADIJNPU
ADIJNPV
ADIJNRT
ADIJNRU
ADIJNRV
ADIJNST
ADIJNSU
ADIJNSV
ADIKMPT
ADIKMPU
ADIKMPV
ADIKMRT
ADIKMRU
ADIKMRV
ADIKMST
ADIKMSU
ADIKMSV
ADIKNPT
ADIKNPU
ADIKNPV
ADIKNRT
ADIKNRU
ADIKNRV
ADIKNST
ADIKNSU
ADIKNSV
ADILMPT
ADILMPU
ADILMPV
ADILMRT
ADILMRU
ADILMRV
ADILMST
ADILMSU
ADILMSV
ADILNPT
ADILNPU
ADILNPV
ADILNRT
ADILNRU
ADILNRV
ADILNST
ADILNSU
ADILNSV
AEGJMPT
AEGJMPU
AEGJMPV
AEGJMRT
AEGJMRU
AEGJMRV
AEGJMST
AEGJMSU
AEGJMSV
AEGJNPT
AEGJNPU
AEGJNPV
AEGJNRT
AEGJNRU
AEGJNRV
AEGJNST
AEGJNSU
AEGJNSV
AEGKMPT
AEGKMPU
AEGKMPV
AEGKMRT
AEGKMRU
AEGKMRV
AEGKMST
AEGKMSU
AEGKMSV
AEGKNPT
AEGKNPU
AEGKNPV
AEGKNRT
AEGKNRU
AEGKNRV
AEGKNST
AEGKNSU
AEGKNSV
AEGLMPT
AEGLMPU
AEGLMPV
AEGLMRT
AEGLMRU
AEGLMRV
AEGLMST
AEGLMSU
AEGLMSV
AEGLNPT
AEGLNPU
AEGLNPV
AEGLNRT
AEGLNRU
AEGLNRV
AEGLNST
AEGLNSU
AEGLNSV
AEHJMPT
AEHJMPU
AEHJMPV
AEHJMRT
AEHJMRU
AEHJMRV
AEHJMST
AEHJMSU
AEHJMSV
AEHJNPT
AEHJNPU
AEHJNPV
AEHJNRT
AEHJNRU
AEHJNRV
AEHJNST
AEHJNSU
AEHJNSV
AEHKMPT
AEHKMPU
AEHKMPV
AEHKMRT
AEHKMRU
AEHKMRV
AEHKMST
AEHKMSU
AEHKMSV
AEHKNPT
AEHKNPU
AEHKNPV
AEHKNRT
AEHKNRU
AEHKNRV
AEHKNST
AEHKNSU
AEHKNSV
AEHLMPT
AEHLMPU
AEHLMPV
AEHLMRT
AEHLMRU
AEHLMRV
AEHLMST
AEHLMSU
AEHLMSV
AEHLNPT
AEHLNPU
AEHLNPV
AEHLNRT
AEHLNRU
AEHLNRV
AEHLNST
AEHLNSU
AEHLNSV
AEIJMPT
AEIJMPU
AEIJMPV
AEIJMRT
AEIJMRU
AEIJMRV
AEIJMST
AEIJMSU
AEIJMSV
AEIJNPT
AEIJNPU
AEIJNPV
AEIJNRT
AEIJNRU
AEIJNRV
AEIJNST
AEIJNSU
AEIJNSV
AEIKMPT
AEIKMPU
AEIKMPV
AEIKMRT
AEIKMRU
AEIKMRV
AEIKMST
AEIKMSU
AEIKMSV
AEIKNPT
AEIKNPU
AEIKNPV
AEIKNRT
AEIKNRU
AEIKNRV
AEIKNST
AEIKNSU
AEIKNSV
AEILMPT
AEILMPU
AEILMPV
AEILMRT
AEILMRU
AEILMRV
AEILMST
AEILMSU
AEILMSV
AEILNPT
AEILNPU
AEILNPV
AEILNRT
AEILNRU
AEILNRV
AEILNST
AEILNSU
AEILNSV
AFGJMPT
AFGJMPU
AFGJMPV
AFGJMRT
AFGJMRU
AFGJMRV
AFGJMST
AFGJMSU
AFGJMSV
AFGJNPT
AFGJNPU
AFGJNPV
AFGJNRT
AFGJNRU
AFGJNRV
AFGJNST
AFGJNSU
AFGJNSV
AFGKMPT
AFGKMPU
AFGKMPV
AFGKMRT
AFGKMRU
AFGKMRV
AFGKMST
AFGKMSU
AFGKMSV
AFGKNPT
AFGKNPU
AFGKNPV
AFGKNRT
AFGKNRU
AFGKNRV
AFGKNST
AFGKNSU
AFGKNSV
AFGLMPT
AFGLMPU
AFGLMPV
AFGLMRT
AFGLMRU
AFGLMRV
AFGLMST
AFGLMSU
AFGLMSV
AFGLNPT
AFGLNPU
AFGLNPV
AFGLNRT
AFGLNRU
AFGLNRV
AFGLNST
AFGLNSU
AFGLNSV
AFHJMPT
AFHJMPU
AFHJMPV
AFHJMRT
AFHJMRU
AFHJMRV
AFHJMST
AFHJMSU
AFHJMSV
AFHJNPT
AFHJNPU
AFHJNPV
AFHJNRT
AFHJNRU
AFHJNRV
AFHJNST
AFHJNSU
AFHJNSV
AFHKMPT
AFHKMPU
AFHKMPV
AFHKMRT
AFHKMRU
AFHKMRV
AFHKMST
AFHKMSU
AFHKMSV
AFHKNPT
AFHKNPU
AFHKNPV
AFHKNRT
AFHKNRU
AFHKNRV
AFHKNST
AFHKNSU
AFHKNSV
AFHLMPT
AFHLMPU
AFHLMPV
AFHLMRT
AFHLMRU
AFHLMRV
AFHLMST
AFHLMSU
AFHLMSV
AFHLNPT
AFHLNPU
AFHLNPV
AFHLNRT
AFHLNRU
AFHLNRV
AFHLNST
AFHLNSU
AFHLNSV
AFIJMPT
AFIJMPU
AFIJMPV
AFIJMRT
AFIJMRU
AFIJMRV
AFIJMST
AFIJMSU
AFIJMSV
AFIJNPT
AFIJNPU
AFIJNPV
AFIJNRT
AFIJNRU
AFIJNRV
AFIJNST
AFIJNSU
AFIJNSV
AFIKMPT
AFIKMPU
AFIKMPV
AFIKMRT
AFIKMRU
AFIKMRV
AFIKMST
AFIKMSU
AFIKMSV
AFIKNPT
AFIKNPU
AFIKNPV
AFIKNRT
AFIKNRU
AFIKNRV
AFIKNST
AFIKNSU
AFIKNSV
AFILMPT
AFILMPU
AFILMPV
AFILMRT
AFILMRU
AFILMRV
AFILMST
AFILMSU
AFILMSV
AFILNPT
AFILNPU
AFILNPV
AFILNRT
AFILNRU
AFILNRV
AFILNST
AFILNSU
AFILNSV
BDGJMPT
BDGJMPU
BDGJMPV
BDGJMRT
BDGJMRU
BDGJMRV
BDGJMST
BDGJMSU
BDGJMSV
BDGJNPT
BDGJNPU
BDGJNPV
BDGJNRT
BDGJNRU
BDGJNRV
BDGJNST
BDGJNSU
BDGJNSV
BDGKMPT
BDGKMPU
BDGKMPV
BDGKMRT
BDGKMRU
BDGKMRV
BDGKMST
BDGKMSU
BDGKMSV
BDGKNPT
BDGKNPU
BDGKNPV
BDGKNRT
BDGKNRU
BDGKNRV
BDGKNST
BDGKNSU
BDGKNSV
BDGLMPT
BDGLMPU
BDGLMPV
BDGLMRT
BDGLMRU
BDGLMRV
BDGLMST
BDGLMSU
BDGLMSV
BDGLNPT
BDGLNPU
BDGLNPV
BDGLNRT
BDGLNRU
BDGLNRV
BDGLNST
BDGLNSU
BDGLNSV
BDHJMPT
BDHJMPU
BDHJMPV
BDHJMRT
BDHJMRU
BDHJMRV
BDHJMST
BDHJMSU
BDHJMSV
BDHJNPT
BDHJNPU
BDHJNPV
BDHJNRT
BDHJNRU
BDHJNRV
BDHJNST
BDHJNSU
BDHJNSV
BDHKMPT
BDHKMPU
BDHKMPV
BDHKMRT
BDHKMRU
BDHKMRV
BDHKMST
BDHKMSU
BDHKMSV
BDHKNPT
BDHKNPU
BDHKNPV
BDHKNRT
BDHKNRU
BDHKNRV
BDHKNST
BDHKNSU
BDHKNSV
BDHLMPT
BDHLMPU
BDHLMPV
BDHLMRT
BDHLMRU
BDHLMRV
BDHLMST
BDHLMSU
BDHLMSV
BDHLNPT
BDHLNPU
BDHLNPV
BDHLNRT
BDHLNRU
BDHLNRV
BDHLNST
BDHLNSU
BDHLNSV
BDIJMPT
BDIJMPU
BDIJMPV
BDIJMRT
BDIJMRU
BDIJMRV
BDIJMST
BDIJMSU
BDIJMSV
BDIJNPT
BDIJNPU
BDIJNPV
BDIJNRT
BDIJNRU
BDIJNRV
BDIJNST
BDIJNSU
BDIJNSV
BDIKMPT
BDIKMPU
BDIKMPV
BDIKMRT
BDIKMRU
BDIKMRV
BDIKMST
BDIKMSU
BDIKMSV
BDIKNPT
BDIKNPU
BDIKNPV
BDIKNRT
BDIKNRU
BDIKNRV
BDIKNST
BDIKNSU
BDIKNSV
BDILMPT
BDILMPU
BDILMPV
BDILMRT
BDILMRU
BDILMRV
BDILMST
BDILMSU
BDILMSV
BDILNPT
BDILNPU
BDILNPV
BDILNRT
BDILNRU
BDILNRV
BDILNST
BDILNSU
BDILNSV
BEGJMPT
BEGJMPU
BEGJMPV
BEGJMRT
BEGJMRU
BEGJMRV
BEGJMST
BEGJMSU
BEGJMSV
BEGJNPT
BEGJNPU
BEGJNPV
BEGJNRT
BEGJNRU
BEGJNRV
BEGJNST
BEGJNSU
BEGJNSV
BEGKMPT
BEGKMPU
BEGKMPV
BEGKMRT
BEGKMRU
BEGKMRV
BEGKMST
BEGKMSU
BEGKMSV
BEGKNPT
BEGKNPU
BEGKNPV
BEGKNRT
BEGKNRU
BEGKNRV
BEGKNST
BEGKNSU
BEGKNSV
BEGLMPT
BEGLMPU
BEGLMPV
BEGLMRT
BEGLMRU
BEGLMRV
BEGLMST
BEGLMSU
BEGLMSV
BEGLNPT
BEGLNPU
BEGLNPV
BEGLNRT
BEGLNRU
BEGLNRV
BEGLNST
BEGLNSU
BEGLNSV
BEHJMPT
BEHJMPU
BEHJMPV
BEHJMRT
BEHJMRU
BEHJMRV
BEHJMST
BEHJMSU
BEHJMSV
BEHJNPT
BEHJNPU
BEHJNPV
BEHJNRT
BEHJNRU
BEHJNRV
BEHJNST
BEHJNSU
BEHJNSV
BEHKMPT
BEHKMPU
BEHKMPV
BEHKMRT
BEHKMRU
BEHKMRV
BEHKMST
BEHKMSU
BEHKMSV
BEHKNPT
BEHKNPU
BEHKNPV
BEHKNRT
BEHKNRU
BEHKNRV
BEHKNST
BEHKNSU
BEHKNSV
BEHLMPT
BEHLMPU
BEHLMPV
BEHLMRT
BEHLMRU
BEHLMRV
BEHLMST
BEHLMSU
BEHLMSV
BEHLNPT
BEHLNPU
BEHLNPV
BEHLNRT
BEHLNRU
BEHLNRV
BEHLNST
BEHLNSU
BEHLNSV
BEIJMPT
BEIJMPU
BEIJMPV
BEIJMRT
BEIJMRU
BEIJMRV
BEIJMST
BEIJMSU
BEIJMSV
BEIJNPT
BEIJNPU
BEIJNPV
BEIJNRT
BEIJNRU
BEIJNRV
BEIJNST
BEIJNSU
BEIJNSV
BEIKMPT
BEIKMPU
BEIKMPV
BEIKMRT
BEIKMRU
BEIKMRV
BEIKMST
BEIKMSU
BEIKMSV
BEIKNPT
BEIKNPU
BEIKNPV
BEIKNRT
BEIKNRU
BEIKNRV
BEIKNST
BEIKNSU
BEIKNSV
BEILMPT
BEILMPU
BEILMPV
BEILMRT
BEILMRU
BEILMRV
BEILMST
BEILMSU
BEILMSV
BEILNPT
BEILNPU
BEILNPV
BEILNRT
BEILNRU
BEILNRV
BEILNST
BEILNSU
BEILNSV
BFGJMPT
BFGJMPU
BFGJMPV
BFGJMRT
BFGJMRU
BFGJMRV
BFGJMST
BFGJMSU
BFGJMSV
BFGJNPT
BFGJNPU
BFGJNPV
BFGJNRT
BFGJNRU
BFGJNRV
BFGJNST
BFGJNSU
BFGJNSV
BFGKMPT
BFGKMPU
BFGKMPV
BFGKMRT
BFGKMRU
BFGKMRV
BFGKMST
BFGKMSU
BFGKMSV
BFGKNPT
BFGKNPU
BFGKNPV
BFGKNRT
BFGKNRU
BFGKNRV
BFGKNST
BFGKNSU
BFGKNSV
BFGLMPT
BFGLMPU
BFGLMPV
BFGLMRT
BFGLMRU
BFGLMRV
BFGLMST
BFGLMSU
BFGLMSV
BFGLNPT
BFGLNPU
BFGLNPV
BFGLNRT
BFGLNRU
BFGLNRV
BFGLNST
BFGLNSU
BFGLNSV
BFHJMPT
BFHJMPU
BFHJMPV
BFHJMRT
BFHJMRU
BFHJMRV
BFHJMST
BFHJMSU
BFHJMSV
BFHJNPT
BFHJNPU
BFHJNPV
BFHJNRT
BFHJNRU
BFHJNRV
BFHJNST
BFHJNSU
BFHJNSV
BFHKMPT
BFHKMPU
BFHKMPV
BFHKMRT
BFHKMRU
BFHKMRV
BFHKMST
BFHKMSU
BFHKMSV
BFHKNPT
BFHKNPU
BFHKNPV
BFHKNRT
BFHKNRU
BFHKNRV
BFHKNST
BFHKNSU
BFHKNSV
BFHLMPT
BFHLMPU
BFHLMPV
BFHLMRT
BFHLMRU
BFHLMRV
BFHLMST
BFHLMSU
BFHLMSV
BFHLNPT
BFHLNPU
BFHLNPV
BFHLNRT
BFHLNRU
BFHLNRV
BFHLNST
BFHLNSU
BFHLNSV
BFIJMPT
BFIJMPU
BFIJMPV
BFIJMRT
BFIJMRU
BFIJMRV
BFIJMST
BFIJMSU
BFIJMSV
BFIJNPT
BFIJNPU
BFIJNPV
BFIJNRT
BFIJNRU
BFIJNRV
BFIJNST
BFIJNSU
BFIJNSV
BFIKMPT
BFIKMPU
BFIKMPV
BFIKMRT
BFIKMRU
BFIKMRV
BFIKMST
BFIKMSU
BFIKMSV
BFIKNPT
BFIKNPU
BFIKNPV
BFIKNRT
BFIKNRU
BFIKNRV
BFIKNST
BFIKNSU
BFIKNSV
BFILMPT
BFILMPU
BFILMPV
BFILMRT
BFILMRU
BFILMRV
BFILMST
BFILMSU
BFILMSV
BFILNPT
BFILNPU
BFILNPV
BFILNRT
BFILNRU
BFILNRV
BFILNST
BFILNSU
BFILNSV
CDGJMPT
CDGJMPU
CDGJMPV
CDGJMRT
CDGJMRU
CDGJMRV
CDGJMST
CDGJMSU
CDGJMSV
CDGJNPT
CDGJNPU
CDGJNPV
CDGJNRT
CDGJNRU
CDGJNRV
CDGJNST
CDGJNSU
CDGJNSV
CDGKMPT
CDGKMPU
CDGKMPV
CDGKMRT
CDGKMRU
CDGKMRV
CDGKMST
CDGKMSU
CDGKMSV
CDGKNPT
CDGKNPU
CDGKNPV
CDGKNRT
CDGKNRU
CDGKNRV
CDGKNST
CDGKNSU
CDGKNSV
CDGLMPT
CDGLMPU
CDGLMPV
CDGLMRT
CDGLMRU
CDGLMRV
CDGLMST
CDGLMSU
CDGLMSV
CDGLNPT
CDGLNPU
CDGLNPV
CDGLNRT
CDGLNRU
CDGLNRV
CDGLNST
CDGLNSU
CDGLNSV
CDHJMPT
CDHJMPU
CDHJMPV
CDHJMRT
CDHJMRU
CDHJMRV
CDHJMST
CDHJMSU
CDHJMSV
CDHJNPT
CDHJNPU
CDHJNPV
CDHJNRT
CDHJNRU
CDHJNRV
CDHJNST
CDHJNSU
CDHJNSV
CDHKMPT
CDHKMPU
CDHKMPV
CDHKMRT
CDHKMRU
CDHKMRV
CDHKMST
CDHKMSU
CDHKMSV
CDHKNPT
CDHKNPU
CDHKNPV
CDHKNRT
CDHKNRU
CDHKNRV
CDHKNST
CDHKNSU
CDHKNSV
CDHLMPT
CDHLMPU
CDHLMPV
CDHLMRT
CDHLMRU
CDHLMRV
CDHLMST
CDHLMSU
CDHLMSV
CDHLNPT
CDHLNPU
CDHLNPV
CDHLNRT
CDHLNRU
CDHLNRV
CDHLNST
CDHLNSU
CDHLNSV
CDIJMPT
CDIJMPU
CDIJMPV
CDIJMRT
CDIJMRU
CDIJMRV
CDIJMST
CDIJMSU
CDIJMSV
CDIJNPT
CDIJNPU
CDIJNPV
CDIJNRT
CDIJNRU
CDIJNRV
CDIJNST
CDIJNSU
CDIJNSV
CDIKMPT
CDIKMPU
CDIKMPV
CDIKMRT
CDIKMRU
CDIKMRV
CDIKMST
CDIKMSU
CDIKMSV
CDIKNPT
CDIKNPU
CDIKNPV
CDIKNRT
CDIKNRU
CDIKNRV
CDIKNST
CDIKNSU
CDIKNSV
CDILMPT
CDILMPU
CDILMPV
CDILMRT
CDILMRU
CDILMRV
CDILMST
CDILMSU
CDILMSV
CDILNPT
CDILNPU
CDILNPV
CDILNRT
CDILNRU
CDILNRV
CDILNST
CDILNSU
CDILNSV
CEGJMPT
CEGJMPU
CEGJMPV
CEGJMRT
CEGJMRU
CEGJMRV
CEGJMST
CEGJMSU
CEGJMSV
CEGJNPT
CEGJNPU
CEGJNPV
CEGJNRT
CEGJNRU
CEGJNRV
CEGJNST
CEGJNSU
CEGJNSV
CEGKMPT
CEGKMPU
CEGKMPV
CEGKMRT
CEGKMRU
CEGKMRV
CEGKMST
CEGKMSU
CEGKMSV
CEGKNPT
CEGKNPU
CEGKNPV
CEGKNRT
CEGKNRU
CEGKNRV
CEGKNST
CEGKNSU
CEGKNSV
CEGLMPT
CEGLMPU
CEGLMPV
CEGLMRT
CEGLMRU
CEGLMRV
CEGLMST
CEGLMSU
CEGLMSV
CEGLNPT
CEGLNPU
CEGLNPV
CEGLNRT
CEGLNRU
CEGLNRV
CEGLNST
CEGLNSU
CEGLNSV
CEHJMPT
CEHJMPU
CEHJMPV
CEHJMRT
CEHJMRU
CEHJMRV
CEHJMST
CEHJMSU
CEHJMSV
CEHJNPT
CEHJNPU
CEHJNPV
CEHJNRT
CEHJNRU
CEHJNRV
CEHJNST
CEHJNSU
CEHJNSV
CEHKMPT
CEHKMPU
CEHKMPV
CEHKMRT
CEHKMRU
CEHKMRV
CEHKMST
CEHKMSU
CEHKMSV
CEHKNPT
CEHKNPU
CEHKNPV
CEHKNRT
CEHKNRU
CEHKNRV
CEHKNST
CEHKNSU
CEHKNSV
CEHLMPT
CEHLMPU
CEHLMPV
CEHLMRT
CEHLMRU
CEHLMRV
CEHLMST
CEHLMSU
CEHLMSV
CEHLNPT
CEHLNPU
CEHLNPV
CEHLNRT
CEHLNRU
CEHLNRV
CEHLNST
CEHLNSU
CEHLNSV
CEIJMPT
CEIJMPU
CEIJMPV
CEIJMRT
CEIJMRU
CEIJMRV
CEIJMST
CEIJMSU
CEIJMSV
CEIJNPT
CEIJNPU
CEIJNPV
CEIJNRT
CEIJNRU
CEIJNRV
CEIJNST
CEIJNSU
CEIJNSV
CEIKMPT
CEIKMPU
CEIKMPV
CEIKMRT
CEIKMRU
CEIKMRV
CEIKMST
CEIKMSU
CEIKMSV
CEIKNPT
CEIKNPU
CEIKNPV
CEIKNRT
CEIKNRU
CEIKNRV
CEIKNST
CEIKNSU
CEIKNSV
CEILMPT
CEILMPU
CEILMPV
CEILMRT
CEILMRU
CEILMRV
CEILMST
CEILMSU
CEILMSV
CEILNPT
CEILNPU
CEILNPV
CEILNRT
CEILNRU
CEILNRV
CEILNST
CEILNSU
CEILNSV
CFGJMPT
CFGJMPU
CFGJMPV
CFGJMRT
CFGJMRU
CFGJMRV
CFGJMST
CFGJMSU
CFGJMSV
CFGJNPT
CFGJNPU
CFGJNPV
CFGJNRT
CFGJNRU
CFGJNRV
CFGJNST
CFGJNSU
CFGJNSV
CFGKMPT
CFGKMPU
CFGKMPV
CFGKMRT
CFGKMRU
CFGKMRV
CFGKMST
CFGKMSU
CFGKMSV
CFGKNPT
CFGKNPU
CFGKNPV
CFGKNRT
CFGKNRU
CFGKNRV
CFGKNST
CFGKNSU
CFGKNSV
CFGLMPT
CFGLMPU
CFGLMPV
CFGLMRT
CFGLMRU
CFGLMRV
CFGLMST
CFGLMSU
CFGLMSV
CFGLNPT
CFGLNPU
CFGLNPV
CFGLNRT
CFGLNRU
CFGLNRV
CFGLNST
CFGLNSU
CFGLNSV
CFHJMPT
CFHJMPU
CFHJMPV
CFHJMRT
CFHJMRU
CFHJMRV
CFHJMST
CFHJMSU
CFHJMSV
CFHJNPT
CFHJNPU
CFHJNPV
CFHJNRT
CFHJNRU
CFHJNRV
CFHJNST
CFHJNSU
CFHJNSV
CFHKMPT
CFHKMPU
CFHKMPV
CFHKMRT
CFHKMRU
CFHKMRV
CFHKMST
CFHKMSU
CFHKMSV
CFHKNPT
CFHKNPU
CFHKNPV
CFHKNRT
CFHKNRU
CFHKNRV
CFHKNST
CFHKNSU
CFHKNSV
CFHLMPT
CFHLMPU
CFHLMPV
CFHLMRT
CFHLMRU
CFHLMRV
CFHLMST
CFHLMSU
CFHLMSV
CFHLNPT
CFHLNPU
CFHLNPV
CFHLNRT
CFHLNRU
CFHLNRV
CFHLNST
CFHLNSU
CFHLNSV
CFIJMPT
CFIJMPU
CFIJMPV
CFIJMRT
CFIJMRU
CFIJMRV
CFIJMST
CFIJMSU
CFIJMSV
CFIJNPT
CFIJNPU
CFIJNPV
CFIJNRT
CFIJNRU
CFIJNRV
CFIJNST
CFIJNSU
CFIJNSV
CFIKMPT
CFIKMPU
CFIKMPV
CFIKMRT
CFIKMRU
CFIKMRV
CFIKMST
CFIKMSU
CFIKMSV
CFIKNPT
CFIKNPU
CFIKNPV
CFIKNRT
CFIKNRU
CFIKNRV
CFIKNST
CFIKNSU
CFIKNSV
CFILMPT
CFILMPU
CFILMPV
CFILMRT
CFILMRU
CFILMRV
CFILMST
CFILMSU
CFILMSV
CFILNPT
CFILNPU
CFILNPV
CFILNRT
CFILNRU
CFILNRV
CFILNST
CFILNSU
CFILNSV
Python 243 chars
pad = [" ","-","ABC","DEF","GHI","JKL","MN","PRS","TUV","WXY"]
def c(p,v):
try:
if 1>len(v):print p;return
map(lambda a:c(p+a,v[1:]),pad[int(v[0])])
except:
p(p+"-",v[1:])
c("","4285246")
Related
How can I find a good fit for my function?
I have a set of data at which I would like to fit a curve to. However, I'm having difficulties with finding the right equation type. I'm guessing it's a type of sigmoidal function. I have tried several forms, but none of them seem to fit sufficiently, see for an example below. I add here below the corresponding X and Y values. Can anybody help to find the right equation? Thanks! 154.306913174971 2.17552527747944e-06 145.732177991779 4.26074331981736e-06 166.370948978060 8.44990728111281e-07 150.517102120948 2.92809906966412e-06 157.163631972266 1.73903777214673e-06 147.162254437166 3.80889812291419e-06 141.445524473590 5.96240785836227e-06 156.755956017828 1.79551102284899e-06 168.124397108446 7.36473206473002e-07 147.506481426373 3.70749329689164e-06 153.617020147862 2.29641877855097e-06 139.857839490342 6.75263654856569e-06 131.285677151789 1.32223004762135e-05 134.762266174873 1.00681303143327e-05 144.412374103663 4.72516773633701e-06 174.063972484101 4.62325663454478e-07 167.779875768370 7.56634177420066e-07 156.618068988233 1.81502390434487e-06 129.382033764703 1.53502450678885e-05 118.745229015261 3.53377063903168e-05 96.9898870635171 0.000194484373736861 104.151683563064 0.000110934350737335 128.888483669522 1.59557749766494e-05 148.539707488194 3.41904542308052e-06 131.959323971162 1.25421837144964e-05 137.173765822536 8.33395024805784e-06 164.638748619708 9.67884576233541e-07 165.582099549336 8.98892600093246e-07 167.050169060673 8.01176756387370e-07 164.150998326847 1.00560797335372e-06 146.433071019905 4.03296012557947e-06 115.142472487946 4.68696642147204e-05 89.9493086128373 0.000337735405143162 88.7090121651731 0.000372221684340948 107.176487608802 8.75162247948925e-05 127.484037553561 1.78127654830961e-05 118.261728568230 3.67027675974562e-05 129.754783518810 1.49082028157606e-05 139.234458911013 7.09081179104455e-06 154.315972640625 2.17398082987862e-06 157.315560628531 1.71844922092655e-06 162.352394592683 1.15787317674560e-06 163.989279778695 1.01843733109615e-06 146.251554650299 4.09075560307041e-06 110.311825857028 6.84459947920383e-05 80.7727512729194 0.000693404202377663 75.9424207966391 0.00101258596573592 91.1311328053438 0.000307852128509189 108.713010050155 7.75851628269193e-05 105.499474031618 9.98116886017153e-05 123.388440588245 2.45563188562737e-05 132.091712446916 1.24126948525892e-05 127.849606518660 1.73095506705975e-05 164.154181676993 1.00535706241415e-06 167.806083897651 7.55081302061313e-07 163.862741610407 1.02858981367769e-06 138.339795742471 7.60596248956097e-06 97.5334986103034 0.000186370776214280 70.3169505045316 0.00157379206791766 60.6253292914279 0.00336428084452373 77.6654635723806 0.000884651141250257 71.3560801471594 0.00145067746467471 86.7932738064685 0.000432535469046982 113.488609005989 5.33576311070358e-05 119.463442966807 3.34031354687890e-05 111.144244573250 6.41222702868355e-05 173.039228088078 5.00996570230076e-07 165.559587158751 9.00480318029118e-07 138.160339828954 7.71371587607137e-06 95.3250058392377 0.000221597319419543 60.0333602575150 0.00352407741753751 54.1861685375761 0.00557325930003049 56.4702086397092 0.00465962108130436 52.3767863096953 0.00642256459946467 72.1970515958000 0.00135812749956365 102.799874943762 0.000123335325459509 110.177528614371 6.91703704314211e-05 95.2981218797184 0.000222064813486541 87.9751216314627 0.000394263426618208 155.066796297747 2.04971939701226e-06 132.938522696065 1.16154751292914e-05 96.1737502189897 0.000207333537000684 58.8071337814191 0.00387964079192246 47.2101216092149 0.00962951011815402 30.9153558963626 0.0345421058173638 39.5595017401398 0.0175414113027215 54.8423886982329 0.00529381383030883 86.2828088053633 0.000450194487483558 105.258518064895 0.000101714903385500 92.0892770310503 0.000285576698597029 82.0954508170408 0.000625109401305906 80.3018735340195 0.000719477460861742 83.2275334937708 0.000572025010731471 89.8896960146722 0.000339317346706426 95.9227174065241 0.000211453950903970 109.202461036929 7.46647538942236e-05 83.4140379392978 0.000563722794745074 50.8071382945717 0.00726350297680941 25.6991523787158 0.0519913434238956 22.6460930008800 0.0660496384278436 23.5216194620445 0.0616685475924222 40.4430393609615 0.0163676026283863 69.4438573905442 0.00168527677121324 91.8885348279150 0.000290106129810452 89.7826422647192 0.000342176860351312 78.8647537957364 0.000805272730753958 73.8655459916452 0.00119161989384632 76.2757661871421 0.000986468855880515 82.3912302647755 0.000610782257895265 88.7795618528225 0.000370168835015504 105.534861572445 9.95351917330333e-05 52.1755200000000 0.00652469868940434 36.8181900000000 0.0217465662818659 26.6011939320146 0.0484419510115361 17.8872025708472 0.0959143856622148 10.9388042526714 0.165362646828414 11.6821601192118 0.156002066714000 28.1224470222665 0.0429963472752433 49.0316459631967 0.00834817590092092 75.0830404469518 0.00108315084903152 81.5529651573552 0.000652265786828491 73.9274327458928 0.00118585298489987 65.5629027719636 0.00228452434549348 64.7187388916893 0.00244081462271457 67.2977288028631 0.00199404417691605 70.5111980792474 0.00155000936002892 75.3783119083087 0.00105836780688548 92.5585390518567 0.000275262500536277 98.1540954300663 0.000177521108912031 98.3375743313063 0.000174986112603729 98.2497352073914 0.000176195173885738 104.663061736749 0.000106575287098574 109.117542102396 7.51634398590547e-05 108.153823933222 8.10617174145388e-05 90.7355642522826 0.000317547744790193 88.5230440798946 0.000377687691302878 18.0360000000000 0.0948021176482752 11.1016800000000 0.163264746012734 20.3792723711797 0.0788937985494656 3.43500000000000 0.625493110644288 8.18531090653268 0.205200441552656 11.4233759960098 0.159199055841086 18.4491477007425 0.0917809811192703 32.7635094155509 0.0298833743513859 50.7232823082576 0.00731140667558126 65.6413866673516 0.00227051229402766 64.8303163479215 0.00241955899129544 52.8354254394713 0.00619575752006340 46.6985412695691 0.0100235280747557 43.9206440370906 0.0124621306882324 42.8129000804395 0.0135926682725199 46.3171177375004 0.0103277549616719 59.1375266296231 0.00378045009228973 69.1229585927413 0.00172820805094786 73.7083381422417 0.00120639570743325 78.0871035661738 0.000855889276167131 97.4631478461140 0.000187401412363113 104.259628197866 0.000109999609042267 104.998386181552 0.000103810339259792 87.7480619204905 0.000401343830306894 84.7246290259427 0.000508683185140011 65.7236267260005 0.00225592184084982 139.198864206429 7.11062469141181e-06 104.843124657709 0.000105081529904530 58.6822358015873 0.00391781195252033 5.98700000000000 0.229483757137695 2.43500000000000 0.807782797115697 5.12400000000000 0.335290618171155 5.79670000000000 0.250108682695640 10.7864348987831 0.167349619731113 19.4560847218647 0.0848149060062711 31.9967273337816 0.0317346876853389 44.6314370948013 0.0117867430929653 48.4775904758348 0.00871874643099029 41.4237867231335 0.0151564039535630 33.1363497295100 0.0290226143647540 29.8516130505924 0.0375459621587331 31.4993114934254 0.0329965417032550 37.0637871870000 0.0213318979638735 48.3018142409018 0.00883971440259736 54.7139851506801 0.00534736807418868 58.4657486310524 0.00398486626422182 65.7574179021228 0.00224995405886591 77.5208782918081 0.000894734849429086 95.6237894547783 0.000216467454540721 99.0011314971387 0.000166116669199869 62.8424590748452 0.00282755793942827 42.3517313966277 0.0140930471085023 30.5000000000000 0.0356852981369460 36.5896497196240 0.0221396727349529 38.7880204893743 0.0186349874769151 38.3458106184465 0.0192922930570955 38.3869921600900 0.0192301136889291 12.1224781052608 0.150709286837519 115.959577730509 4.39616546075342e-05 102.642110579109 0.000124870102597256 53.5494336422404 0.00585850050226190 4.89938900000000 0.368084806589385 2.48690000000000 0.799194560400488 5.79476593611392 0.250325939856079 10.6683541325421 0.168905858028150 19.4792652496846 0.0846609269523174 29.5510335903589 0.0384411409093322 32.8945557208097 0.0295779622104205 28.8269528101520 0.0406861994984267 25.1762720034484 0.0541666727128294 29.5014027373441 0.0385909898826065 41.1555090239589 0.0154785227602777 51.6538899969049 0.00679702726860992 58.3808073174849 0.00401148822724458 53.7299960528500 0.00577616170080593 52.6468925310462 0.00628800519664331 61.8853046693850 0.00304787538877360 74.8901312929523 0.00109965489088389 90.5135288727771 0.000323123155755078 79.2713791130561 0.000780009155459333 37.9290543343900 0.0199329714571605 16.3724471699145 0.108007174278639 34.6992351854189 0.0256761036654916 36.4094593179439 0.0224546174733544 35.5000000000000 0.0241139084243252 25.3000000000000 0.0536438476633137 12.3000000000000 0.148626550473379 101.977900433978 0.000131544007185477 73.4204360655747 0.00123393198183242 47.2423186885046 0.00960523656312363 4.17800000000000 0.487158084447669 1.44770000000000 0.935831656094153 6.30694306697059 0.237753047648373 12.5028845850214 0.146281473218524 19.4089666914500 0.0851287561095103 20.5220782874146 0.0780155425361308 19.1911894278829 0.0865945125270047 23.2576891989925 0.0629577288631814 38.1096885983987 0.0196527110917651 61.7890354873692 0.00307096331331580 72.7046757228800 0.00130514514544995 66.6755814643918 0.00209370443942485 52.6300998510614 0.00629628803998617 49.3737580423046 0.00812726853974615 61.9284523433064 0.00303758383377243 77.0107082664668 0.000931242433953682 35.1428477193788 0.0247985691105552 14.0566234577376 0.129507018194262 55.6675537628533 0.00496222509300557 31.9911949534015 0.0317484534741359 7.54670000000000 0.215734389781468 2.35800000000000 0.820246143110866 7.31834058715205 0.219631044589109 10.5406151605977 0.170605686120530 11.0917981059417 0.163391266686859 12.8036590236060 0.142872833188184 23.5169749553856 0.0616910041424241 45.1888332807570 0.0112828192256579 69.0168571749084 0.00174264200120436 72.1004888143667 0.00136844692980075 58.3788116656606 0.00401211583012861 42.1169662161987 0.0143548060912798 38.4344000822303 0.0191587813111026 51.5207652338821 0.00686833006583973 69.3372411542552 0.00169942074199029 34.5349750259292 0.0260088559839011 13.0686196087636 0.139935932930367 35.6565064350946 0.0238198733660525 21.0985677544712 0.0745684175850716 5.93690506586048 0.234769954046308 5.25422886087489 0.317274269833174 8.54857339346618 0.199439537208861 20.7417719692137 0.0766834786080087 44.0498545693610 0.0123365411991028 57.5956001861787 0.00426616240301253 52.4330967138797 0.00639427677050234 38.1246846539885 0.0196296221017754 27.3491427165013 0.0456833769813232 24.6998905825477 0.0562276913562479 33.4388189464445 0.0283425658950303 49.8020399686211 0.00785894107382568 12.9405286019585 0.141348115227119 17.0309293932043 0.102573460731293 11.0038441016125 0.164521695319195 6.21102657774954 0.239547424926689 3.30600000000000 0.650106082326811 0.902500000000000 0.973630398480610 1.46550000000000 0.934202032553452 14.7174388223200 0.122969180359408 28.4821176216434 0.0418010135445005 35.1568893193108 0.0247712878216007 29.4594538092345 0.0387181004650474 20.3934885557517 0.0788059277420974 16.6897070056602 0.105354162950579 16.8992393848384 0.103637829386785 21.8150541844591 0.0704956982026017 33.9686622933175 0.0271894858761093 12.8942645814400 0.141861664135437 5.31797587715638 0.308723935875670 5.99509492367039 0.228639033835369 2.02400000000000 0.869932657633053 12.8831637677010 0.141985164859529 15.3119550056405 0.117369800009821 12.9484273347883 0.141260622155420 9.74307531513170 0.181612285102202 10.4686186518199 0.171571273802511 14.1652251477361 0.128409167636140 20.1650019091914 0.0802301426206960 30.4964980409297 0.0356950957587680 44.6264961727608 0.0117913092052979 12.2585543002453 0.149110212761395 5.15968323188230 0.330280836866953 5.75960940473435 0.254302280610194 5.05200000000000 0.345566901158644 5.35690916464499 0.303588704622129 5.93690506586048 0.234769954046308 5.93690506586048 0.234769954046308 6.39975284461559 0.236029586002151 11.5277643955979 0.157901644511949 20.0173612862576 0.0811640841458747 30.2737040907595 0.0363239797882875 39.5666249585826 0.0175316191041443 46.1814850645097 0.0104381480081872 56.6152659235020 0.00460693644860723 50.8812100559095 0.00722144976187197 10.2480211646121 0.174563995007503 6.22522444390289 0.239280963963967 2.17200000000000 0.848849166925210 6.08194384516291 0.241983661412031 7.40996584727971 0.218059195365965 14.4579764292344 0.125495890722127 22.9950286812900 0.0642674632722842 28.6794459925481 0.0411593869161488 35.6770058820640 0.0237816267197793 34.6650100776606 0.0257450827339442 30.3596284612548 0.0360801377104528 21.4615596363821 0.0724764823006559 14.8538738923666 0.121661015105867 3.50000000000000 0.613093031447497 2.49800000000000 0.797339038326733 5.31758753403477 0.308775489294215 7.65774361043524 0.213864634422704 14.9990017792852 0.120284772741938 19.5269185151008 0.0843452626728737 20.1479757126003 0.0803372959643244 18.2196535041381 0.0934470671161394 15.5782005432482 0.114945562472981 7.97640833558094 0.208588442853977 8.07512104824874 0.206980595660571 9.88332465044348 0.179626548971613 10.2214983311512 0.174927312919569 9.87824594440680 0.179698076088530 8.55095746630339 0.199402267941080 7.32955232283202 0.219438098309888 8.52882042888337 0.199748595564067 8.77814150061791 0.195882555860071 8.31978075623978 0.203048765350009 7.91635653905649 0.209572679483789 4.19966075819978 0.483311564625295 4.42530000000000 0.444155179771007 3.75660000000000 0.564455554938093 8.38047147114645 0.202085045969904 5.96560981600397 0.231728542402306 5.54471724098511 0.279739038320913 4.42210000000000 0.444698185979662 3.67470000000000 0.579898535393030 5.48673956323277 0.286939161052285 5.01302249490035 0.351223287378069 0.950000000000000 0.971215153313286 0.815691055789701 0.977657278639089 0.750000000000000 0.980387352505937 0.500000000000000 0.988541587449508 0.600000000000000 0.985677011577326 2.53600000000000 0.790938556947510 4.84157964922138 0.376872917346871 6.24262589789517 0.238954783328257 11.1346575207735 0.162843234097248 7.73280677934369 0.212609906908824 5.19075234424179 0.325963846419964 17.3199887556118 0.100275346637730 13.3713302619646 0.136654413246417 9.57431518827266 0.184030815561607 30.3116760976761 0.0362160176604821 26.4473202021243 0.0490298039179392 18.6349510221530 0.0904538681412840 11.1942663196016 0.162084086052568 40.4913476739003 0.0163057375517541 32.2535102027946 0.0311022798096939 21.7835875703388 0.0706698023173357 12.9894659603939 0.140806914395135 56.4567425909519 0.00466454239093475 45.6399135621243 0.0108908279545437 33.0165518518083 0.0292964482169379 16.3198368721052 0.108453528738031 3.90500000000000 0.536764324037570 65.9428437088657 0.00221748632590354 63.3360321323981 0.00272024575740834 57.3777838166273 0.00433963096628919 42.6459176185540 0.0137717625655879 24.0029449816352 0.0593850748689063 5.15050000000000 0.331564849610643 75.7341859186769 0.00102925058794945 80.1128381406387 0.000730218412217384 70.1061255544638 0.00160001756107767 44.0637615996939 0.0123230995741544 21.7937804759747 0.0706133581526017 85.1442984138169 0.000492220857633261 95.6379135272310 0.000216227917427577 94.9558501531546 0.000228103613876112 71.8175883335864 0.00139913338970519 42.6157814689909 0.0138043350614287 22.1589590208922 0.0686206142886749 4.29505000000000 0.466549144960540 112.195733480956 5.90488766340447e-05 118.091123100090 3.71969186641526e-05 103.281127243548 0.000118769127239403 73.4521123847273 0.00123087179806608 44.0039082705724 0.0123810542079096 22.9433747877735 0.0645282193522671 11.1219414606448 0.163005639109723 135.064000472658 9.83278360957451e-06 128.874658858924 1.59730760523741e-05 107.238975229749 8.70885831522357e-05 77.2840186472578 0.000911502962542375 47.1338979189531 0.00968722036976871 24.0083107667764 0.0593601013398783 11.1106094766547 0.163150503670796 143.000532780105 5.27815867670455e-06 131.352256127116 1.31534713957140e-05 108.626188214863 7.81150056265159e-05 77.0376906762032 0.000929274797153994 44.7830803144399 0.0116474598920857 21.5529584965590 0.0719590617517615 9.10281531619113 0.190960021465178 137.823040016881 7.92039405598581e-06 120.766856891847 3.01587517385367e-05 96.5704879744579 0.000200984645327945 67.4436800397112 0.00197136009633303 38.1309022064232 0.0196200570741672 16.0141618362189 0.111083663289264 132.732983324596 1.18041421937269e-05 117.112580715478 4.01625055957344e-05 97.8781758340800 0.000181402598526634 79.7546352813535 0.000751013183609921 55.4565787149072 0.00504497441084773 25.9926005450177 0.0508090165689539 8.46530626810550 0.200745598783124 118.193628895298 3.68992231121362e-05 94.8647984040639 0.000229737538221302 70.2018808521699 0.00158805237984796 57.0875016033921 0.00443951233691400 31.0926341997196 0.0340653995143397 10.9255157202700 0.165534992872173 100.500000000000 0.000147701606470484 60.6582672268406 0.00335560546014088 65.7280016965648 0.00225514829621312 57.0829785747662 0.00444108669044321 38.5693253515109 0.0189572107330428 18.6000189742853 0.0907018995099142 7.00934991254385 0.225015850733861 80.6261984059532 0.000701416157150316 64.9259897569028 0.00240148056691755 61.7310030417641 0.00308496545211825 53.9784332716895 0.00566475929034600 50.3735504258976 0.00751462535639661 44.3000000000000 0.0120969915211642 20.5855704790468 0.0776282119535398 4.57400000000000 0.419341002962649 86.3973483621137 0.000446170393805624 64.8372826563307 0.00241823805765465 59.7558562447016 0.00360157848007560 48.7871111993287 0.00850974638512371 62.3074141001959 0.00294867405303013 64.2066272749068 0.00254079309645972 44.4355456467927 0.0119691363268503 20.7067161892120 0.0768944963477998 92.9132387199471 0.000267714277430105 71.2188709882843 0.00146636491351283 57.9920318479809 0.00413562477140768 36.9153019744865 0.0215816467347285 51.3728548203810 0.00694842974239916 70.2142942036301 0.00158650782528743 63.6704618794992 0.00264985860067723 35.4638564127479 0.0241823271393581 13.8091985870070 0.132043407052665 4.95734800000000 0.359415765587999 92.0356996421249 0.000286778623408410 66.5168690449470 0.00211991590965480 58.1220019494259 0.00409370347011465 26.1095195022094 0.0503454653876905 30.6419629424702 0.0352903766989764 54.3925060709663 0.00548383808438570 67.3395494244399 0.00198751776861815 50.4908648242405 0.00744583557962104 25.3787083356148 0.0533138869636654 10.9413546899758 0.165329589380806 3.15930000000000 0.677980723506276 84.0925082418949 0.000534524381510787 65.6549814089402 0.00226809391656112 52.8255236631808 0.00620056853547273 22.3308523660047 0.0677021725403233 18.4715656602152 0.0916198320158549 37.5766383295927 0.0204913143970953 62.6150246892878 0.00287842135051348 65.7073672409378 0.00225879902925787 44.8086121578822 0.0116241714988446 23.1224046440351 0.0636289456458179 11.0231180896166 0.164273309166289 3.53537000000000 0.606352826762644 72.4265000528198 0.00133391796210895 58.2647947619799 0.00404813598956840 44.1837900143889 0.0122076949662190 19.7470837350693 0.0829020585104941 26.6826887825175 0.0481334717467709 54.1714186821135 0.00557970705874641 73.3023274707877 0.00124540943167682 65.6655701948485 0.00226621205516219 43.2481479195769 0.0131367214351077 23.9671102888605 0.0595521269096065 13.9524732559178 0.130568684790958 66.2291974850659 0.00216826432271911 67.1692091340834 0.00201423502486729 35.9818836379744 0.0232199988952597 17.1013879738429 0.102008483745798 17.9033548583105 0.0957930178478541 38.9106089857730 0.0184567682988021 63.1020099987418 0.00277060919849163 72.6258963718997 0.00131323002513129 61.5261860240330 0.00313489620363845 40.6782202282729 0.0160686168122605 25.0151840268643 0.0548550093768112 14.3641470385267 0.126422351899001 57.7896223163089 0.00420176759916532 54.7822040094075 0.00531884840542551 30.7969525368802 0.0348642056809546 16.1188515219495 0.110175771838050 11.5009371290675 0.158234059410279 23.6211244666450 0.0611893919371079 42.2036587227645 0.0142575840588663 58.3957530136542 0.00400679114729627 60.4746844460922 0.00340424531004204 45.3730802105985 0.0111210313226513 29.5339102926540 0.0384927749186653 17.5431182624139 0.0985366683565490 8.61075953644658 0.198469680822241 66.3608476330475 0.00214600278317144 45.8726890114777 0.0106939022459211 30.8597746724118 0.0346929345346124 20.5926000075369 0.0775854471195465 14.0998507855533 0.129068914673886 24.6932910224918 0.0562567876883909 35.9098613307261 0.0233514658012286 40.5721786814209 0.0162027454521891 32.7858199234299 0.0298311563748799 22.9777061031504 0.0643547924262527 15.0798092004655 0.119525237775718 9.07122791855388 0.191433450363434 52.3538022612864 0.00643414669040205 57.8805072356908 0.00417193862085746 40.5398349398436 0.0162438784354768 33.8462594998350 0.0274516288469396 28.5470540090686 0.0415887718466252 15.3573210947961 0.116953145228020 8.71536440401067 0.196848888598533 14.1532407109725 0.128529859596254 19.5485537931163 0.0842023352337335 21.7117935138342 0.0710686487365630 18.1408868384041 0.0940258427925923 13.4338930560729 0.135985860090486 11.1773650310324 0.162298972282371 6.84546227424700 0.227925312696054 2.40000000000000 0.813490312963344 52.0444528909693 0.00659208129530772 55.0129586602541 0.00522350147512033 37.9273598445212 0.0199356193507616 34.4273559664173 0.0262292015443880 31.6003809618924 0.0327361484155887 17.3898448480867 0.0997277376524228 9.74296301370484 0.181613883898276 10.8423684664227 0.166617459471557 59.4287331060380 0.00369512875263730 60.8103807215254 0.00331583024185819 40.4501988089189 0.0163584192303149 36.0366025105692 0.0231206120515096 31.9881502695118 0.0317560318698155 17.3952028255883 0.0996858596154536 69.9749842669977 0.00161655084328113 52.7345941442112 0.00624492386474148 47.9055713695616 0.00911859784694278 39.9554658278358 0.0170052959298811 32.8282678824215 0.0297320583017557 17.2596170653361 0.100751028108114 8.22851597517459 0.204506634966301 84.4659225092295 0.000519104598064849 66.3175378171574 0.00215330096566067 61.3592569994423 0.00317618766745161 40.3192568300672 0.0165271956313528 27.9146891109710 0.0437023251449535 14.4040998313928 0.126027029185427 6.79499281023907 0.228828840037901 77.4910653043309 0.000896828325957076 54.0774214347431 0.00562097266392941 43.5455697766794 0.0128339829686675 21.7088493383454 0.0710850528412608 11.2337839889570 0.161582760476911 19.8278629621002 0.0823787577573956 149.583647695744 3.15039210600060e-06 92.9814287500877 0.000266287051082233 40.8182899182089 0.0158931474824857 31.7670782267558 0.0323111549429379 39.5480460149245 0.0175571708159820 99.8485050790026 0.000155440769094681 46.6224276692476 0.0100835126798416 13.6079077106534 0.134143470375968 28.9308938197572 0.0403560378538071 50.6266841498420 0.00736698120582471 54.6307109655935 0.00538238914437839 37.0467176599567 0.0213604608601606 140.962774688636 6.19236547455093e-06 76.4201933946805 0.000975363386678589 15.3873158464539 0.116678477670851 32.0059975941825 0.0317116346011532 50.6723928566388 0.00734063176935432 47.2990773951234 0.00956259477361423 26.8958630736746 0.0473358094897267 12.7862324313754 0.143068140931842 145.986737370994 4.17656326747772e-06 82.6611991610966 0.000597992172151462 24.4000730831804 0.0575648453781607 37.3129332522890 0.0209193161411852 32.9602066233090 0.0294261339650100 17.4411084471866 0.0993277805626203 0.600000000000000 0.985677011577326 83.4048019911785 0.000564131081198705 38.8434568345855 0.0185541819521631 16.0433260884076 0.110829995479868 25.4093905588080 0.0531858115808315 24.0780244989947 0.0590365915010434 13.6317435327561 0.133893058649082 0.700000000000000 0.982291620857682 0.600000000000000 0.985677011577326 0.500000000000000 0.988541587449508 95.8372778417625 0.000212874939768514 53.4659989367605 0.00589694329119684 17.6194240033628 0.0979490200209608 17.9982504983407 0.0950830699941747 5.04250240325928 0.346939161554136 0.900000000000000 0.973753287814607 0.500000000000000 0.988541587449508 73.6302938907826 0.00121379892524782 34.3031503588560 0.0264858288728638 5.26660728454590 0.315600141190466 5.69392228126526 0.261870324434820 2.20000000000000 0.844687663912349 102.604118635155 0.000125242543623630 49.8329307414562 0.00783993345348739 14.8248536544265 0.121938096363585 26.2440643310547 0.0498172636781713 8.12088584899902 0.206239382555395 29.0443553924561 0.0399986925711634 10.1891927719116 0.175370865979568 31.1829433441162 0.0338250907955999 12.4537124633789 0.146846418287677 27.7944889068604 0.0441160561694436 12.0856180191040 0.151145385359739 22.7137660980225 0.0657001798315868 11.9283523559570 0.153020246987682 21.0641384124756 0.0747699433174583 36.0026893615723 0.0231821588564339 19.6494808197022 0.0835387825426895 21.3486614227295 0.0731207524817773 8.55476284027100 0.199342794464448 17.5718402862549 0.0983150607019039 7.61885070800781 0.214517663022840 0.900000000000000 0.973753287814607
Looking at data with a log plot, the tail seems to be compatible with an exponential decay: The first peak can really be anything. A Gaussian fits fine, as well as the sigmoid you suggested. Here's a fit using the sigmoid + exponential decay: import fitwrap as fw def f(x, A=0.5, x0=5, B=1, t=20): first_peak = A * (-1/(1 + np.exp(-(x-x0)))+1) decay = B * np.exp(-x/t) return first_peak + decay fw.fit(f, x, y, plot_range_x=(0,200)) fit results: A: 0.71395 +/- 0.00282 (0.4%) initial:0.5 x0: 3.4017 +/- 0.0126 (0.4%) initial:5 B: 0.33547 +/- 0.0026 (0.8%) initial:1 t: 14.225 +/- 0.116 (0.8%) initial:20
How do remove between two patterns in bash [duplicate]
This question already has answers here: RegEx match open tags except XHTML self-contained tags (35 answers) Closed 3 years ago. How do i remove the text between two patterns in a line of a file, i have list of lines here i show only two lines for simpliciy <sup id="Gen.2.23" class="v0_2_23">23</sup>Anke Adam pulo:</span></p><p class="q2"><span class="v0_2_23">“La ke non nerrepi-heihei pen arrepi-lo lapen ne-ok pen a-ok-lo;</span></p><p class="q2"><span class="v0_2_23">bangpi aphan ‘Arloso’ pusi hangpo,</span></p><p class="q2"><span class="v0_2_23">pima bangpi ke Pinso pensi enlo.”</span></p> <sup id="Gen.2.24" class="v0_2_24">24</sup>Anke Adam pulo:</span></p><p class="q2"><span class="v0_2_24">“La ke non nerrepi-heihei pen arrepi-lo lapen ne-ok pen a-ok-lo;</span></p><p class="q2"><span class="v0_2_24">bangpi aphan ‘Arloso’ pusi hangpo,</span></p><p class="q2"><span class="v0_2_24">pima bangpi ke Pinso pensi enlo.”</span></p> i want to remove the text between </span></p><p class="q2"> to "> The result which i need in output is shown below <sup id="Gen.2.23" class="v0_2_23">23</sup>Anke Adam pulo: “La ke non nerrepi-heihei pen arrepi-lo lapen ne-ok pen a-ok-lo;bangpi aphan ‘Arloso’ pusi hangpo, pima bangpi ke Pinso pensi enlo.”</span></p> <sup id="Gen.2.24" class="v0_2_24">24</sup>Anke Adam pulo: “La ke non nerrepi-heihei pen arrepi-lo lapen ne-ok pen a-ok-lo;bangpi aphan ‘Arloso’ pusi hangpo, pima bangpi ke Pinso pensi enlo.”</span></p> When i used sed 's/<\/span><\/p><p class="q2">*.*">//g' it removes the first <span and last ">
It looks like you are looking for a non-greedy match, otherwise the .*>" will match as much possible on the line. The syntax for non-greedy matching is generally *?, although I don' believe it is supported by sed. So, for your case you could do something like, perl -pe 's;</span></p><p class="q2">.*?">;;g' input.html But, as #melpomene suggests, regexps aren't a good choice for HTML parsing.
It looks like this yields what you want: sed 's/<\/span><\/p><p class="q2"><span class="v0_2_23">//g' file To avoid escaping you can use a different separator like: sed 's|</span></p><p class="q2"><span class="v0_2_23">||g' file
HTML5 Form Pattern for 7 or 10 numbers only
I need a pattern for a student ID that must be either 7 or 10 digits long. pattern="[0-9]{7,10}" I got this but obviously this is between 7-10 not 7 | 10 I tried pattern="[0-9]{7|10}", that also does not work. Any ideas?
You could use ^(\d{7}|\d{10})$"to get exactly 7 or 10 digits. Example Snippet: document.getElementById('textbox').onkeyup = function (){ document.getElementById('count').innerHTML = this.value.length; }; <p> <span>Character Count</span> <span id="count"></span> </p> <form> <input id="textbox" type="text" pattern="^(\d{7}|\d{10})$" required /> </form> <p>Press Enter to check validation</p>
Use [0-9]{7}([0-9]{3})? instead. This sets the base of 7 digits and an optional extra 3 digits bringing up the count to 10.
Escape HTML special characters in awk
From an awk script I want to generate a HTML file. My string could include characters like "<" and "&". Is there a short and proven function for awk which does the escaping?
Sure. Just call makeEntities() for each line ($0) you want to convert. Or modify it to accept an argument. I made this for working with the British National Corpus, which has a high degree of overlap with HTML entities, but not 100%, so if there are some exotic characters you need, you should verify that they are correct. function makeEntities() { gsub(/á/, "\\á"); gsub(/Á/, "\\Á"); gsub(/ă/, "\\ă"); gsub(/â/, "\\â"); gsub(/´/, "\\´"); gsub(/æ/, "\\æ"); gsub(/Æ/, "\\Æ"); gsub(/α/, "\\&agr;"); gsub(/à/, "\\à"); gsub(/ā/, "\\ā"); gsub(/Ā/, "\\Ā"); gsub(/&/, "\\&"); gsub(/ą/, "\\ą"); gsub(/å/, "\\å"); gsub(/Å/, "\\Å"); gsub(/ã/, "\\ã"); gsub(/ä/, "\\ä"); gsub(/Ä/, "\\Ä"); gsub(/β/, "\\&bgr;"); gsub(/\\/, "\\\"); gsub(/•/, "\\•"); gsub(/ć/, "\\ć"); gsub(/č/, "\\č"); gsub(/Č/, "\\Č"); gsub(/ç/, "\\ç"); gsub(/Ç/, "\\Ç"); gsub(/ĉ/, "\\ĉ"); gsub(/✓/, "\\✓"); gsub(/ˆ/, "\\ˆ"); gsub(/#/, "\\@"); gsub(/©/, "\\©"); gsub(/‐/, "\\‐"); gsub(/ď/, "\\ď"); gsub(/°/, "\\°"); gsub(/δ/, "\\&dgr;"); gsub(/Δ/, "\\&Dgr;"); gsub(/¨/, "\\¨"); gsub(/\$/, "\\$"); gsub(/đ/, "\\đ"); gsub(/é/, "\\é"); gsub(/É/, "\\É"); gsub(/ě/, "\\ě"); gsub(/ê/, "\\ê"); gsub(/è/, "\\è"); gsub(/È/, "\\È"); gsub(/ε/, "\\&egr;"); gsub(/ē/, "\\ē"); gsub(/Ē/, "\\Ē"); gsub(/ę/, "\\ę"); gsub(/ð/, "\\ð"); gsub(/ë/, "\\ë"); gsub(/Ë/, "\\Ë"); gsub(/♭/, "\\♭"); gsub(/½/, "\\½"); gsub(/⅓/, "\\⅓"); gsub(/¼/, "\\¼"); gsub(/⅕/, "\\⅕"); gsub(/⅙/, "\\⅙"); gsub(/⅛/, "\\⅛"); gsub(/⅔/, "\\⅔"); gsub(/⅖/, "\\⅖"); gsub(/¾/, "\\¾"); gsub(/⅗/, "\\⅗"); gsub(/⅜/, "\\⅜"); gsub(/⅘/, "\\⅘"); gsub(/⅝/, "\\⅝"); gsub(/⅞/, "\\⅞"); gsub(/′/, "\\&ft;"); gsub(/γ/, "\\&ggr;"); gsub(/>/, "\\>"); gsub(/½/, "\\½"); gsub(/ħ/, "\\ħ"); gsub(/í/, "\\í"); gsub(/Í/, "\\Í"); gsub(/î/, "\\î"); gsub(/Î/, "\\Î"); gsub(/ì/, "\\ì"); gsub(/ī/, "\\ī"); gsub(/″/, "\\&ins;"); gsub(/¿/, "\\¿"); gsub(/ï/, "\\ï"); gsub(/Ï/, "\\Ï"); gsub(/ĺ/, "\\ĺ"); gsub(/Ĺ/, "\\Ĺ"); gsub(/\{/, "\\{"); gsub(/≤/, "\\≤"); gsub(/λ/, "\\&lgr;"); gsub(/_/, "\\_"); gsub(/\[/, "\\["); gsub(/ł/, "\\ł"); gsub(/Ł/, "\\Ł"); gsub(/</, "\\<"); gsub(/—/, "\\—"); gsub(/μ/, "\\&mgr;"); gsub(/µ/, "\\µ"); gsub(/·/, "\\·"); gsub(/ń/, "\\ń"); gsub(/ň/, "\\ň"); gsub(/ņ/, "\\ņ"); gsub(/–/, "\\–"); gsub(/ñ/, "\\ñ"); gsub(/Ñ/, "\\Ñ"); gsub(/#/, "\\#"); gsub(/ó/, "\\ó"); gsub(/Ó/, "\\Ó"); gsub(/ô/, "\\ô"); gsub(/œ/, "\\œ"); gsub(/ò/, "\\ò"); gsub(/Ω/, "\\Ω"); gsub(/ō/, "\\ō"); gsub(/ø/, "\\ø"); gsub(/Ø/, "\\Ø"); gsub(/õ/, "\\õ"); gsub(/ö/, "\\ö"); gsub(/Ö/, "\\Ö"); gsub(/φ/, "\\&phgr;"); gsub(/\+/, "\\+"); gsub(/±/, "\\±"); gsub(/£/, "\\£"); gsub(/ŕ/, "\\ŕ"); gsub(/√/, "\\√"); gsub(/ř/, "\\ř"); gsub(/Ř/, "\\Ř"); gsub(/\}/, "\\}"); gsub(/®/, "\\®"); gsub(/-/, "\\&rehy;"); gsub(/\]/, "\\]"); gsub(/ś/, "\\ś"); gsub(/Ś/, "\\Ś"); gsub(/š/, "\\š"); gsub(/Š/, "\\Š"); gsub(/ş/, "\\ş"); gsub(/Ş/, "\\Ş"); gsub(/ŝ/, "\\ŝ"); gsub(/σ/, "\\&sgr;"); gsub(/♯/, "\\♯"); gsub(/\//, "\\&shilling;"); gsub(/∼/, "\\∼"); gsub(/\//, "\\/"); gsub(/²/, "\\²"); gsub(/ß/, "\\ß"); gsub(/ť/, "\\ť"); gsub(/ţ/, "\\ţ"); gsub(/τ/, "\\&tgr;"); gsub(/þ/, "\\þ"); gsub(/Þ/, "\\Þ"); gsub(/×/, "\\×"); gsub(/™/, "\\™"); gsub(/ú/, "\\ú"); gsub(/Ú/, "\\Ú"); gsub(/û/, "\\û"); gsub(/ù/, "\\ù"); gsub(/ū/, "\\ū"); gsub(/¨/, "\\¨"); gsub(/ů/, "\\ů"); gsub(/ü/, "\\ü"); gsub(/Ü/, "\\Ü"); gsub(/\|/, "\\|"); gsub(/ŵ/, "\\ŵ"); gsub(/ý/, "\\ý"); gsub(/ŷ/, "\\ŷ"); gsub(/¥/, "\\¥"); gsub(/ÿ/, "\\ÿ"); gsub(/Ÿ/, "\\Ÿ"); gsub(/ź/, "\\ź"); gsub(/Ž/, "\\Ž"); gsub(/ž/, "\\ž"); gsub(/ż/, "\\ż"); }
To escape the bare minimum you can do: function escapeHtml(t) { # Must do this one first gsub(/&/, "\\&", t); gsub(/</, "\\<", t); gsub(/>/, "\\>", t); return t; }
How can I extract information from an HTML file using Perl regular expressions?
I have two files, XML and an HTML and need to extract data from these on certain patterns. My XML file is pretty well formatted and I can use readline to read a line and search data between tags. if($line =~ /\<tag1\>$varvalue\<\/tag1\>/)` However, for my HTML, it has one of the worst code I have seen and the file is like: <div class="theater"> <h2> <a href="/showtimes/university-village-3" >**University Village 3**</a></h2> <div class="address"> <i>**3323 South Hoover Street, Los Angeles CA 90007 | (213) 748-6321**</i> </div> </div> <div class="mtitle"> <a href="/movie/dream-house-2011" title="Dream House" onmouseover="mB(event, 771204354);" >**Dream House**</a> <span>**(PG-13 , 1 hr. 31 min.)**</span> </div> <div class="times"> **1:00 PM,** </div> Now from this file I need to pick data which is shown in bold. I can use Perl regular expression to search data from this file.
RegEx match open tags except XHTML self-contained tags http://www.codinghorror.com/blog/2009/11/parsing-html-the-cthulhu-way.html Using regular expressions to parse HTML: why not? When you are done reading those come back :) Edit : and to actually solve your problem take a look at this module : http://perlmeme.org/tutorials/html_parser.html Some sample to parse the an html file : #!/usr/local/bin/perl use HTML::TreeBuilder; $tree = HTML::TreeBuilder->new; $tree->parse_file('C:\Users\Stefanos\workspace\HTML_Parser_Test\test.html'); #divs = $tree->find('div'); $tree->delete; In this example I just used your tags as the main body of an .html file. The divs are stored in the #divs array. Since I have no idea which text you want to find, because ** is not a element I can't help you further.. P.S. I have never used this module but I just did it in 5 minutes so it is not so hard to parse the html file and find whatever you want.. Regex to match any specific tag and store of contents result into $1: if ($subject =~ m!<tagname[^>]*>(.*?)</tagname>!s) { # Successful match } Although you will soon realize the limitations of this approach when you have nested elements.. Replace tagname with actual tag.. e.g. in your case i, a, span, div although for div you will also get the contents of the first div which is not what you want..
Parsing XML and HTML using regular expressions is a fool's errand. There are many simple to use Perl modules for parsing HTML. Here is something using HTML::TokeParser::Simple. I've omitted the code to associate movies and showtimes with theaters (because I have no intention of building an appropriate input file): #!/usr/bin/env perl use strict; use warnings; use HTML::TokeParser::Simple; my $parser = HTML::TokeParser::Simple->new(handle => \*DATA); my #theaters; while (my $div = $parser->get_tag('div')) { my $class = $div->get_attr('class'); next unless defined($class) and $class eq 'theater'; my %record; $record{theater} = $parser->get_text('/a'); $record{address} = $parser->get_text('/i'); s{(?:^\s+)|(?:\s+\z)}{} for values %record; push #theaters, \%record; } use YAML; print Dump \#theaters; __DATA__ <div class="theater"> <h2> <a href="/showtimes/university-village-3" >**University Village 3**</a></h2> <div class="address"> <i>**3323 South Hoover Street, Los Angeles CA 90007 | (213) 748-6321**</i> </div> </div> <div class="mtitle"> <a href="/movie/dream-house-2011" title="Dream House" onmouseover="mB(event, 771204354);" >**Dream House**</a> <span>**(PG-13 , 1 hr. 31 min.)**</span> </div> <div class="times"> **1:00 PM,** </div> <div class="theater"> <h2> <a href="/showtimes/university-village-3" >**Some other theater*</a></h2> <div class="address"> <i>**1234 South Hoover Street, St Paul, MN 99999 | (999) 748-6321**</i> </div> </div> Output: [sinan#macardy]:~/tmp> ./tt.pl --- - address: '**3323 South Hoover Street, Los Angeles CA 90007 | (213) 748-6321**' theater: '**University Village 3**' - address: '**1234 South Hoover Street, St Paul, MN 99999 | (999) 748-6321**' theater: '**Some other theater*'