Skip to content

Instantly share code, notes, and snippets.

@travisdoesmath
Last active December 20, 2020 19:41
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save travisdoesmath/b40d7af9602fd32b92146a7fa899e62e to your computer and use it in GitHub Desktop.
Save travisdoesmath/b40d7af9602fd32b92146a7fa899e62e to your computer and use it in GitHub Desktop.
alphabet = ' abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
def poly_from_coefficients(coefs):
def poly(x):
p = 0
for i, coef in enumerate(coefs):
p += coef * x ** i
return p
def poly_prime(x):
p = 0
for i, coef in enumerate(coefs):
if i == 0:
p += coef
else:
p += i * coef * x ** (i - 1)
return p
return poly, poly_prime
def newton_raphson(f, f_prime, starting_value):
x = starting_value
error = f(x)
threshold = 0.001
while error > threshold:
x -= (f(x) / f_prime(x))
error = f(x)
return int(x)
coefs1 = [-34,
-3365,
-164835,
-5328015,
-127831935,
-2428022520,
-38026471560,
-505038543240,
-5805942302160,
-58683851289140,
-527964438421420,
-4270138610004540,
-31302547322979660,
-209405476619086440,
-1285840031910116760,
-7283481051312173400,
-38222441864929536060,
-186536283185888510490,
-849406949242773369910,
-3619542019887455513390,
-14471551000902861440190,
-54415073604805821147240,
-192833359080172359879960,
-645253764447308437151640,
-2042267534487049440130560,
-6123611560438512305641476,
-17419412930874214365248220,
-47071021079159876896246380,
-120971291589240381909963420,
-295998720314966634106282680,
-690249985807857203363148360,
-1535415376803888260878492680,
-3260685030761173072373170470,
-6615844986656043078528551355,
-12833855196831655949662290045,
-23817710581838192780530339185,
-42312178057901565974096681745,
-71991621974747397929152626480,
-117370014023338019301672634320,
-183433354011204730525108835280,
-274924682916056230025347394400,
-395288050192719872194981192680,
-545395011213437681410911285720,
-722308298378948494564083135480,
-918435185825571112900984576920,
-1121434599657985277640150821520,
-1315130867615588452455900516720,
-1481456701817773893251464304880,
-1603152812650857883532804914920,
-1666685446659565350678029979180,
-1664707185001809190024406204724,
-1597446288638099727801197873220,
-1472663630225788055803390561380,
-1304188378523339410298297635920,
-1109412072681306459892966357680,
-906364950408508649051628746160,
-711046595477861506762052575680,
-535537287188613527631945543720,
-387145681534927266079247907480,
-268554476848489073475979588920,
-178701043895436549516475806360,
-114026138979938075731824411120,
-69741602535606649150269246480,
-40869353092552560819637714320,
-22935573152881222677547734030,
-12319505473364582472688106475,
-6329819983957694563408097805,
-3109005105087806435566869345,
-1458727513761577427114313105,
-653297687322604724391064920,
-279037228305303975827655720,
-113559257479326821889831720,
-43989560577905593421804880,
-16201634546594743778952420,
-5666556013657876962189180,
-1879524340332612687870156,
-590342959187662728787740,
-175300155659095355757960,
-49124848130690297003640,
-12965692960244538997560,
-3215900222422858097820,
-747729887106549310810,
-162521907255837503990,
-32918167621039148910,
-6190958893615347390,
-1076688503237451720,
-172329076441562040,
-25242425874287160,
-3361347363541440,
-403644943234260,
-43275773641100,
-4089798388060,
-334958209740,
-23210963160,
-1311257640,
-56465640,
-1568490,
-8085,
1485,
65,
1]
coefs2 = [-5,
-494,
-24156,
-779394,
-18665031,
-353851344,
-5531123136,
-73314628464,
-841117282236,
-8483953865464,
-76165361608336,
-614673352153224,
-4495802098736676,
-30006489349152624,
-183817681537666176,
-1038687732534953424,
-5437276941349131186,
-26467536794290063164,
-120204882347713776536,
-510838471545359352164,
-2036736807534476795286,
-7636486877372374149744,
-26982006137453775070656,
-90012278508641870616144,
-284002829014605312768156,
-848817444021179923554264,
-2406537368763345277769232,
-6480653818637897511580968,
-16596061490755292063680932,
-40459363866951414137797968,
-93991487429155023436684032,
-208259364283551150719588208,
-440478504155456713285498467,
-889971129608073500986914258,
-1718923591973832652081465092,
-3175694744245092370737378558,
-5615261013291609690020307297,
-9507682142033148040049610528,
-15422533243646348429978239872,
-23977037919892117110407346528,
-35740208779087309903295161272,
-51095758141959718848613345008,
-70081846000483183932593781792,
-92242009608287881627708769808,
-116532636481093969163780838792,
-141331483792513213072457363808,
-164575035947425594050347327232,
-184021402277079606113287303968,
-197597904815105739133113163932,
-203760950748884547323248768968,
-201782689091128386669624994512,
-191891380802347583401506122232,
-175228330685093768665213560468,
-153632546855176551892744446432,
-129308956815834395325272899968,
-104462401064031505314425008032,
-80980306707200893825678210008,
-60224121975659030153628039792,
-42953389484167112732880059808,
-29370002711520153353927355792,
-19244727804123936101774317608,
-12078658200246404860130016672,
-7257662702892399261166230528,
-4172436047942604535561339872,
-2293557315288122267754773403,
-1204573868506759175107281522,
-603946126909724985866460708,
-288798578482090076479197342,
-131571501241240316955408633,
-57039188943902544464600592,
-23497871857288755859171008,
-9184027380841732043549232,
-3399193317383614037139468,
-1188758984483874691473432,
-391761897240544580101968,
-121259634860168560507752,
-35101473248996162252244,
-9448802716376770948656,
-2346261403256850006144,
-530878766876154352656,
-107196674080761936594,
-18527820211489717436,
-2453160864239056664,
-133002697458744036,
53834425161872586,
25333847134998864,
7069910828371776,
1564319349955824,
294117894309876,
48154133578824,
6924123782576,
875026631864,
96765705036,
9284385264,
762913536,
52701264,
2980131,
132594,
4356,
94,
1]
coefs3 = [-12,
-1187,
-58113,
-1877337,
-45015663,
-854513352,
-13374827928,
-177523849272,
-2039523321528,
-20601170484972,
-185220311183908,
-1497027035082852,
-10966395773553948,
-73309693172929752,
-449823076455154248,
-2546051637067385832,
-13350937440144401328,
-65104820406055205622,
-296219174356866092178,
-1261215190110692908322,
-5038243681795811019918,
-18927869880545964804312,
-67015091330523778300488,
-224036085459354490124712,
-708411551025195274545288,
-2122043610052949808885660,
-6030334918238382643712436,
-16278328674625961500982964,
-41790082549010313750714636,
-102141277492334398268121864,
-237915952555048653074106456,
-528607367305701487654496184,
-1121218010577526179272177916,
-2272078612343790295565930109,
-4401838117284341723911319391,
-8158250291250323504135679399,
-14473137541300909482728397681,
-24590012446481415254660683344,
-40030545845640889674869990256,
-62466493528139989313955981744,
-93474392191459118208618114096,
-134176656223177686897736618584,
-184812610017403235048049731016,
-244326975863274926129592237384,
-310095320805622934893450706616,
-377908097966937504519831646704,
-442295409108706284010308441936,
-497195440097247192663881752464,
-536869779120287291229590483136,
-556880656658359223995092509364,
-554902395000603063341468734908,
-531163255107529135497983441436,
-488402368505261355215808008964,
-431352920016457241852705561136,
-365885570990258686772647182864,
-298025085388560471044094875856,
-233065272962187938327561677584,
-174954885992579081269083989016,
-126034287565385080782003333384,
-87104186123891961659250308616,
-57734183412371808305322952824,
-36686670802240946105021767056,
-22339993007340666475777303344,
-13030312575951904328269430256,
-7276112862293353401153074244,
-3887488393817268246937135821,
-1986053609645441780445476559,
-969538084904159542465876791,
-451919504263390653890316609,
-200963654069796174102023016,
-85179785482671739989494904,
-34378048439096753730582936,
-13196868173371678026541464,
-4812556533958912057416636,
-1664988063272314465433364,
-545668356870758522284884,
-169125280199708781760812,
-49481887909446774178488,
-13637644406430440660712,
-3532385641137488577288,
-857573392646095492752,
-194542112220642033078,
-41090444476004199122,
-8046663196254014178,
-1453529479370559822,
-240671547782489208,
-36233292995405352,
-4906274324861448,
-588235788619752,
-60900815996748,
-5193092836932,
-323379407428,
-7443515772,
1440680472,
262251528,
26350632,
1882188,
98637,
3663,
87,
1]
coefs4 = [-16,
-1583,
-77517,
-2504733,
-60073167,
-1140605928,
-17856944952,
-237071975448,
-2724326772552,
-27525294267548,
-247537425227092,
-2001229139614068,
-14663877873449532,
-98054381072230968,
-601826159265147432,
-3407402439657347208,
-17873029153741698552,
-87183268184206715598,
-396798769790667415402,
-1690001886433740654698,
-6753390467088002005422,
-25380088739502302321208,
-89891140012278065860392,
-300621118002618844129608,
-950930820745532395560792,
-2849601419213961171932172,
-8101076375081261138537124,
-21877000020904855209212676,
-56186666010870326143305324,
-137388085278267532056878376,
-320158504055559298581204984,
-711663369032644537331586456,
-1510212014247280159835994744,
-3061854316764199892468224881,
-5934932131747489764956950419,
-11005424889539027008934708451,
-19534781271591937935704449329,
-33208486906166139377295582096,
-54092267332494913243379561904,
-84460468161424487715983773296,
-126465354141385865811659801424,
-181651455126730811497235632056,
-250373046598500407114024559144,
-331232670866124665844954218856,
-420702568991068058167547773944,
-513094734638037099632616951216,
-600992765200866678273143364624,
-676152033137342956407078580176,
-730739421580391035284720379824,
-758663345749487610664717503876,
-756685084091731450011093729420,
-725032897567632879553113338124,
-667358961545357118959004836676,
-590050276108617636115540483824,
-501072207661358281885432487376,
-408632333574005594318191943184,
-319970967965037678042923659056,
-240515322573676253335058817144,
-173509086468938205381502346856,
-120095148073818709262291995944,
-79728158045656306707350744376,
-50748392289094969673531338704,
-30958467467025390598412202096,
-18091956306242932781245481904,
-10123287460582056905952103296,
-5420582408280416287982766849,
-2775829314065851377347771331,
-1358532088573913523029693619,
-634975505990333703567406881,
-283206205570306819609121544,
-120426593268604873778251416,
-48774631900956766123173624,
-18795539519650571734771176,
-6883297990801790552241324,
-2392545872433325828479876,
-788187626591095643300388,
-245710312742973135765708,
-72357936591201061738392,
-20089863265386778177608,
-5247532426429679562792,
-1286360088969143239128,
-295121707654443356302,
-63168892254155709098,
-12568754909851311402,
-2314880281960521198,
-392674630592482392,
-60977980894706568,
-8603756424757032,
-1092437893150968,
-123217930039932,
-12117216619508,
-1008182858452,
-66991641948,
-3041436552,
-23841048,
11293128,
1254792,
79233,
3267,
83,
1]
coefs5 = [-47,
-4652,
-227898,
-7367052,
-176768823,
-3357823392,
-52593351888,
-698569953312,
-8031553517988,
-81187253582512,
-730495059061768,
-5908795449730992,
-43319364147640308,
-289825712291815392,
-1779850051042594608,
-10082871159729547872,
-52919239934120752038,
-258291238464880917912,
-1176290634402627670388,
-5013098782937360689112,
-20045778053102482143078,
-75384784896413918077152,
-267180517295873794449648,
-894155120212917587667552,
-2830455161078145083430948,
-8488174440211799235542640,
-24149322665613569473428456,
-65266702954566281447992944,
-167760187840285422185883156,
-410550845619249318919741344,
-957538278184516801261218576,
-2130347382416453172329036064,
-4524915542687873509205575161,
-9182616026022374268461009364,
-17816410743836887083060590886,
-33071028026276479171127183604,
-58762520181347408446268849601,
-100001663968722751327716047424,
-163070608855613595899328742176,
-254913771569379350331699157824,
-382145309253318159735232878216,
-549581146629267527143352986464,
-758466430102003490625329477136,
-1004751807138210148639009575264,
-1277908742428267763541800045736,
-1560791168839058961756703061184,
-1830897274915109733810114015456,
-2063065629198085125416853994944,
-2233229150646195051711977079156,
-2322479186205732607354311211344,
-2320500924547976446700687436888,
-2227522626633436895980370037456,
-2054272557606099287968780251444,
-1819954785822860691652511134656,
-1548768641862380144009518597344,
-1265838507011205299692444214976,
-993490104237123160836979015464,
-748608706077179336846363735136,
-541438777971474921027619701264,
-375775103185751003185865072736,
-250181461453611169323066128904,
-159726733812213652329480518976,
-97751644529582002548832667424,
-57319695215998403291809882176,
-32188890597319509068144578449,
-17302061020369813606086407316,
-8896591023324025753340555814,
-4373235617014506872399274036,
-2053659519374142338564856489,
-920585979699264322289135136,
-393589353609586660641114384,
-160348153730371862165751456,
-62185242453311997973551444,
-22931544281334098887132656,
-8031118893431163892090344,
-2667711966923708331170544,
-839244314953271879303652,
-249647313874796790327648,
-70094559422298393933552,
-18539920012444159700448,
-4609456985472763273542,
-1074613572266403611288,
-234276862534829911412,
-47614965690230364888,
-8990349002032721862,
-1570698522369929568,
-252749312114290992,
-37259242698947808,
-5000004203267892,
-606175563874608,
-65779175934472,
-6315409603888,
-528489619812,
-37777843488,
-2241058512,
-105402528,
-3607527,
-71148,
198,
52,
1]
for coefs in [(coefs1, 0),
(coefs2,0),
(coefs3,0),
(coefs3,0),
(coefs4,-1),
(coefs2,-5),
(coefs5,2),
(coefs4,-1),
(coefs4,2),
(coefs3,0),
(coefs2,-1)]:
poly1, poly_prime1 = poly_from_coefficients(coefs[0])
char1 = alphabet[newton_raphson(poly1, poly_prime1, 50) + coefs[1]]
print(char1, end='')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment