Last active
December 16, 2015 23:19
-
-
Save nmische/5512786 to your computer and use it in GitHub Desktop.
Given a string list all the two letter pairs. Also, give the probability of a third letter following a given pair.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
input = "If you are self-motivated, wow, this world is tailored for you. The boundaries are all gone. But if you're not self-motivated, this world will be a challenge because the walls, ceilings and floors that protected people are also disappearing. That is what I mean when I say \"it is a 401(k) world.\" Government will do less for you. Companies will do less for you. Unions can do less for you. There will be fewer limits, but also fewer guarantees. Your specific contribution will define your specific benefits much more. Just showing up will not cut it. - T. Friedman".downcase | |
pair = "ou" | |
third = "r" | |
pairs = (0..input.length-2).inject({}) do |h,i| | |
key, val = input[i,2], input[i + 2] | |
h[key] = {} unless h[key] | |
h[key][val] = (h[key][val] || 0) + 1 if val | |
h | |
end | |
p "Pairs:" | |
pairs.each_pair do |k,v| | |
p k.to_s + ": " + ( v.empty? ? "1" : v.values.reduce(:+).to_s ) | |
end | |
prob = if pairs[pair] && pairs[pair][third] | |
( pairs[pair][third].to_f / pairs[pair].values.reduce(:+).to_f ) * 100 | |
else | |
0 | |
end | |
p "Probability:" | |
p "#{prob}%" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"Pairs:" | |
"if: 4" | |
"f : 2" | |
" y: 8" | |
"yo: 8" | |
"ou: 9" | |
"u : 1" | |
" a: 9" | |
"ar: 6" | |
"re: 7" | |
"e : 13" | |
" s: 6" | |
"se: 3" | |
"el: 2" | |
"lf: 2" | |
"f-: 2" | |
"-m: 2" | |
"mo: 3" | |
"ot: 5" | |
"ti: 3" | |
"iv: 2" | |
"va: 2" | |
"at: 5" | |
"te: 5" | |
"ed: 5" | |
"d,: 2" | |
", : 5" | |
" w: 13" | |
"wo: 4" | |
"ow: 2" | |
"w,: 1" | |
" t: 9" | |
"th: 7" | |
"hi: 2" | |
"is: 6" | |
"s : 14" | |
"or: 10" | |
"rl: 3" | |
"ld: 3" | |
"d : 5" | |
" i: 7" | |
"ta: 1" | |
"ai: 1" | |
"il: 8" | |
"lo: 2" | |
" f: 8" | |
"fo: 4" | |
"r : 8" | |
"u.: 4" | |
". : 10" | |
"he: 4" | |
" b: 7" | |
"bo: 1" | |
"un: 2" | |
"nd: 2" | |
"da: 1" | |
"ri: 4" | |
"ie: 3" | |
"es: 6" | |
"al: 5" | |
"ll: 9" | |
"l : 7" | |
" g: 3" | |
"go: 2" | |
"on: 4" | |
"ne: 3" | |
"e.: 2" | |
"bu: 3" | |
"ut: 4" | |
"t : 11" | |
"u': 1" | |
"'r: 1" | |
" n: 2" | |
"no: 2" | |
"wi: 7" | |
"be: 4" | |
"a : 2" | |
" c: 6" | |
"ch: 2" | |
"ha: 4" | |
"le: 5" | |
"en: 4" | |
"ng: 4" | |
"ge: 1" | |
"ec: 4" | |
"ca: 2" | |
"au: 1" | |
"us: 2" | |
"wa: 1" | |
"ls: 3" | |
"s,: 2" | |
"ce: 1" | |
"ei: 1" | |
"li: 2" | |
"in: 4" | |
"gs: 1" | |
"an: 5" | |
"fl: 1" | |
"oo: 1" | |
"rs: 1" | |
" p: 2" | |
"pr: 1" | |
"ro: 1" | |
"ct: 1" | |
"pe: 4" | |
"eo: 1" | |
"op: 1" | |
"pl: 1" | |
"so: 2" | |
"o : 5" | |
" d: 5" | |
"di: 1" | |
"sa: 2" | |
"ap: 1" | |
"pp: 1" | |
"ea: 2" | |
"g.: 1" | |
"wh: 2" | |
"i : 2" | |
" m: 3" | |
"me: 2" | |
"n : 4" | |
"ay: 1" | |
"y : 1" | |
" \": 1" | |
"\"i: 1" | |
"it: 4" | |
" 4: 1" | |
"40: 1" | |
"01: 1" | |
"1(: 1" | |
"(k: 1" | |
"k): 1" | |
") : 1" | |
"d.: 1" | |
".\": 1" | |
"\" : 1" | |
"ov: 1" | |
"ve: 1" | |
"er: 4" | |
"rn: 1" | |
"nm: 1" | |
"nt: 3" | |
"do: 3" | |
" l: 4" | |
"ss: 3" | |
"co: 2" | |
"om: 1" | |
"mp: 1" | |
"pa: 1" | |
"ni: 2" | |
" u: 2" | |
"io: 2" | |
"ns: 1" | |
"fe: 2" | |
"ew: 2" | |
"we: 2" | |
"im: 1" | |
"mi: 1" | |
"ts: 2" | |
"gu: 1" | |
"ua: 1" | |
"ra: 1" | |
"ee: 1" | |
"s.: 1" | |
"ur: 2" | |
"sp: 2" | |
"ci: 2" | |
"fi: 4" | |
"ic: 2" | |
"c : 2" | |
"tr: 1" | |
"ib: 1" | |
"de: 1" | |
"ef: 2" | |
"mu: 1" | |
"uc: 1" | |
"h : 1" | |
" j: 1" | |
"ju: 1" | |
"st: 1" | |
"sh: 1" | |
"ho: 1" | |
"g : 1" | |
"up: 1" | |
"p : 1" | |
"cu: 1" | |
"t.: 2" | |
" -: 1" | |
"- : 1" | |
"fr: 1" | |
"dm: 1" | |
"ma: 1" | |
"Probability:" | |
"22.22222222222222%" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment