Last active
August 29, 2015 14:18
-
-
Save colinvh/0936bdf0b04830914f64 to your computer and use it in GitHub Desktop.
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
#!/usr/bin/env python | |
from __future__ import print_function | |
import random | |
def main(): | |
return ''.join((chr(c + 97) for c in generate())) | |
def generate(): | |
text = decompose(markov(data, sigma)) | |
while True: | |
sig, r = row(text[-2], text[-1]) | |
if sig > 0: | |
text.append(markov(r, sig)) | |
else: | |
return text | |
def markov(dat, sig): | |
i = -1 | |
s = 0 | |
target = random.randint(1, sig) | |
while s < target: | |
i += 1 | |
s += dat[i] | |
return i | |
def decompose(num): | |
i, rem = divmod(num, 26 * 26) | |
j, k = divmod(rem, 26) | |
return [i, j, k] | |
def row(i, j): | |
index = 26 * i + j | |
sig = rows[index] | |
index *= 26 | |
return sig, data[index:index + 26] | |
data = map(lambda c: ord(c) - 32, (u'" # ! !!! #" E9"%F "N! ' | |
u'\u0150 "Q 88 3 . :!`"\x8b !~c \xcd-%!C!-@#\x927 M C\'#K\x94&#(k.!09#' | |
u'L#!C4!*9) 2 " "! !# * "# ,& " % .R" # "% "\' %!G! ! >! !\xd6' | |
u' J%> \')JS# 8# 5 # # , 4 # %$"- " ! " *:"!* "!"w-\xb0 " }>7 #' | |
u'! $ # $ + !!\x82! !/ # %! # !" # ( n4BM\x9c58%' | |
u'\x8d <\u010d?#U7 \'0e=:% :"fY!!\x82# !d #F"Ke #.#, " . \x92&\xbc\u0187' | |
u'\x87(\xb2,\xad"Y$ y]!$!\x9c\u01db=&!#<) ! #! #""" =# ![! v' | |
u'9 !.!!E~ )6>( ) . \x9c`\x85\u0109\x93,O%\xdc#]W' | |
u'dBN9&~P\xdd%6%!\xcc"3#@ g !qQ 6#3"3B$ \xb8\xf3, ! 1!R#I"\u037f$ \xb0' | |
u'\u0180 %.&#\xb0 \\-\x8aY!% (% %7C%%F! !#A$7 $!CTX ! \' !C !\x8c Q ! ' | |
u' 3 #! & >* $#&""" *-$/# &#% " # $ 6 ! \'" !! # # +(!%0%!' | |
u'"" *\'$-! #%\'# % * !6 * \' "" $+ 1j+!"3$( *d\'i!\' \x8eVW' | |
u')!#!,!\' 0 * 8 ) "# " . " ! " " " ' | |
u'# ! # S!.B2+0\') !u%P"""\xe7DI $%!&" " ' | |
u' ! % ! B(65(#)! #!R\'M0$"=6[$$ ' | |
u'# & ! Y \u0227 C O' | |
u' @! # ! $ ! ! " " ^\'$5#")#(' | |
u'!!N(_Z" W/4N&1*3 ! ! \x8e' | |
u' m \x84 n < * & 0 \' , ;" ! #! $ ! #' | |
u' #50#%. ,!"T\'4" !\x88LV #!% # " ! ' | |
u' ! # !" $ # &(# " " ' | |
u' !O1A!#$%\'!#\x98H\x98 \x94!?$8 \x8b #2\x86 "\')!2J" _\x9f%!" ( M\'+ `"!x_ *#!J$ ' | |
u'1\'_) # + #+1-##^!& @!\xa9 +!v\u01dd\x87 \' ! ": \x8d ; ! \' ' | |
u' " 2."-P& (( !<\'s!( %-"" ! $!"!# %!!#: !! ! !! . /!$&#! ! # !$' | |
u'! !"! " ) \' #! (F+! 2 1 "R%i!7!\xd0R\x852%\'!*"# ' | |
u' # ! & "! # ! # ! ! " ' | |
u' S!^B3$( #!"O"\x8c$* \u01446R#!(""$ ! " ! ! # " ' | |
u' " X "x l # !\x81 -!#% o 5 j9A!3 &;#j,+"E;Y#" " "! ' | |
u' ! " \' \xb6 \x99 [ A ' | |
u' = + & " " ! $ # "!3*,"\' ? ' | |
u',\x8f.W71 \x81\x9eT4#-#" 0 P !4 @! 9 @# ! 0 ' | |
u' G \xc6 \x88 \u0131 , ! $!# 1 %6 !!" - .& ! C 0 ! ) ' | |
u' #\x8b A # 3 $ !($(#&$ ! !I(6 ) G2< ! ! ' | |
u' # " ! ! !" # ! !# ! 4 ' | |
u'# ! ! ' | |
u' ! ' | |
u' ' | |
u' ' | |
u' ' | |
u' ' | |
u' ' | |
u' \x8e \x84 \xa0 - ' | |
u' # ' | |
u' h\xa2\x7f(C' | |
u'i.u#*\x99\x7f\u0159"\x97!:b\u01353M<"<-@ : C $ L #! ) % 2 " O v' | |
u'9 #+ - !"\'F $ 6%! :! $J $ "1! %)$# $ \' \xc6:\x8a\x83\x92TW49$$\\e' | |
u'\xaf4h(+\u0121\x97.XB\'7"+ /! ) \' ( $ , : _ %9 +! 2 "" -' | |
u' + + 3 % 2 " # \xd6V\xf2woFa! !&Qa\xc6r]! \xb7\xad=L!&!* ' | |
u' # # " $" !3 #) &#"%# !*" ! & 8" $< D .! "!" ' | |
u'! ( \x81!" =" #a " G! !!* ! % U% R$ #= ! & 0! )%\' " $ NHoH26X$@%*lz' | |
u'\xc7t\x9f".\x9fj\x9fJ_1/#* 5 A* %! 9 ,((% ! * ' | |
u' U | %u O . \\ :"""t! 0L $"#!K,! @.!" " G"" ]%#\x85\x83 ' | |
u' +\'#@ 1,!; " 8\'%5>?/&, 2 *NI!< #s6 !!! !? E < % ! " / ' | |
u' & , / ! %##%# ! *+$,0 )$ " ' | |
u' " ! ! ! "L70!*5$0!\'p1y!* D*K6*-%\' ) $ " & ' | |
u'" 2 # q a !nE %! x | H # + ! " " " F.O2A\'(#+ !' | |
u'_G\x85%<.s<I,3//3!# \' % \' & ! " " " %! " ' | |
u'\x81)! o# k !$0#q" ; !4!& 1 WXLp</F "RHn\xb4\'!\'\x83y)l ( # ' | |
u' ! ) 8 C " # ! % 7 J C = ! = - " Y >' | |
u' ? 9 . " 5 , , 3 $& " &$:,&*$!(! ca\xde(5 g +B&#' | |
u' #!_! \x94 Ir 8 e B! 0 # T $ ! ! "' | |
u' ! # R#" m# $\xb7 %+!J" $ $1 - 3 \u0122&$!\u0143)!+\u0110! 9,"\xed' | |
u'& \u011f# Z"\' D .F1&\'+& + GCE!J g>$ $ % & ! E ' | |
u' ? < 5 " " "@!! ! !23> " )%! ' | |
u' ! ! ! jL(#)M(d /\xa2D\xd5!7 \xa06\xd9-+)-$ \' $ ' | |
u' $ & # # % \x90 " % ! ! ! # ! ' | |
u' T)=Eb)1&0 "aQ\xd924 \u026c]7)))0! & ! % ! & ! 8 $ " ' | |
u' " ! ! d&!%\u0132(!"^ !)-#z$!]("? 0 Q \x83C\u01760CMB #ck\xd7' | |
u'\u01c3<)2kx)\xa0 " " ! $ ! 2' | |
u' \x86 % " # " # 9 ( # + # # ) % " ' | |
u'$! %&B+(\': . )Fa\u010e:X \u015f30D#D\'#"" ! ! " # % ' | |
u' \u015b \x82 \u0116 \xe9 d ! ` """!*" ' | |
u'#$ ! - )# (%"% # L \xba!!"U !M A *( $! 9 I.)I(%$ * 3>=-* \xbfC6 ' | |
u' !! # " . , !7 / " ! ' | |
u' "!" ! ! ." B .# "! ! % ! " !! !! !! $\'5 !%!$ %' | |
u'S": ! P)E "$ # (2 !4 "2" 7% "! */(\'" ! * . 7 ?= W0 \' )!O% " 1! 8' | |
u'c 2 G $ ( !* " " \'!&) !%%$! ! 5!A!! 36/" #&! Z !! ! #! ' | |
u' 3! 5 Bp# $""& !! + # ! #"..& ! @ ?!( 3L' | |
u'`!$ " #! " ! # ! !, # ! ! " \xa8$++N.\' C ' | |
u'*c%"70 !8i0#! %!6T#!S% !@ "<+(P! (!&" 5&i\xa39%N"W A$"-$" "/r! " % ' | |
u' ! # " # " 0#%= " $$!"?!!.* !-! (8 --8" " " $ ' | |
u' k;51\xb5(\\!b"+1+W</!SKK)/# <!?%="\x89 !U` 1# !(,! B\x93& $ M!.!e !W' | |
u'm (##Q -\'S+ " &" # ( % # " ' | |
u' ! $ " ! ! %$ ! ! " !! ' | |
u' " $ # ! , )4(! ."(!#e"Y ! ?2D% ' | |
u' ! &"%$$#&$% !O$' | |
u'\x98#! \u012fN8 !%* ' | |
u' E$A75"( " #K O2 0a>%0 " ! ' | |
u' ! " ! ' | |
u' 7 # ) %P"&! *$)*!# & ' | |
u' % " ' | |
u' ! - "" ' | |
u' ! ! ! ' | |
u' ! ! ! !$\'( #,#2 (U%4 $' | |
u' \x84;W!)!$g!& \' ! * # ! # ! ! ! % ' | |
u' ! $ # ! # >%!)A "!3 S + " D5\' " " ! # # $ # ' | |
u' " 2 O T 3 ! ! .2%%/ H"s " (FO $' | |
u' ! " " ! ! ! # ) % ! ' | |
u' !! # ( % ! !!!&!!"# " !*$! " # ! #! #*' | |
u'1(V! \x99!!#"! ! ! ! ! % ! \' ' | |
u' , 9 * & !! " !! !"" %# !!$! " ! ! ! #! # ! ' | |
u' ! !!! ! " ! ! ' | |
u' " % !!$! ' | |
u' ! %! !# $&& #& ! ! # + #' | |
u'\' \' # % \' \'! " ! "&) &!! !' | |
u' " ! ! \' $ $ ' | |
u' " (",($"" "+$( )" !! ' | |
u' " ! ' | |
u' ! # !!* ! &!% ( ; % 2 , \' # ' | |
u' ! ! ' | |
u' &! 6 !\' \' ? ) ! $! " # ! & ! ' | |
u' " " ! " &' | |
u' " %% !! "+#=!$!4!# # $ $\' ' | |
u' " ) # # $ 2 ?$ 3 , $! , " "! E +' | |
u'# !!!! ! -!&"! 3\'& !! ! ! # " $ !" " !#!( # !' | |
u' " $ * ! !! ) " " ! ' | |
u' # ! ! / 6 - !3 +! " #& 2$! 4 % ' | |
u' #\'+4 " ! . +#, #!" #+ & "! "" $& %"!2 $ ($%1!! !" 8' | |
u' 1% " "5 %\'0# ! ! / "&! 5 "= " !$ !' | |
u' #!# , !F !" $# &G" " 0 0* , " ! # #! "! ! ! " ' | |
u' ! $ * ! # "$ % # ! ' | |
u' " ! !#" %!! ' | |
u'!$!+ ! 3 ! ! ! ' | |
u' %!"!! ! !\' , -##! ! ' | |
u' ! !!" \' % %$&!! "!' | |
u'!! 0 ' | |
u'" " ! # "" ! ' | |
u'\' #*%" % !! ! ! ' | |
u' ! ! " ' | |
u' ! ! ! $ ! ! ! ! ' | |
u' ! $ # \' ! \' ' | |
u'1 " ! % ')) | |
rows = [0] * (26 * 26) | |
for i, d in enumerate(data): | |
rows[i/26] += d | |
sigma = sum(rows) | |
if __name__ == '__main__': | |
print(main()) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment