Categories

See More
Popular Forum

MBA (4887) B.Tech (1769) Engineering (1486) Class 12 (1030) Study Abroad (1004) Computer Science and Engineering (988) Business Management Studies (865) BBA (846) Diploma (746) CAT (651) B.Com (648) B.Sc (643) JEE Mains (618) Mechanical Engineering (574) Exam (525) India (462) Career (452) All Time Q&A (439) Mass Communication (427) BCA (417) Science (384) Computers & IT (Non-Engg) (383) Medicine & Health Sciences (381) Hotel Management (373) Civil Engineering (353) MCA (349) Tuteehub Top Questions (348) Distance (340) Colleges in India (334)
See More

Word Patterns for Cryptography

Course Queries Syllabus Queries

Max. 2000 characters
Replies

usr_profile.png

User

( 4 months ago )

I want a function f that takes a word (like those listed in WordList[]) and returns a pattern best described by examples like these: f[“book”]=abbc; f[“settings”]=abccdefa; and f[“moving”]=abcdef.

Then I want a second function, f2, that searches a list of words for words that have the same pattern, returning a list of them; for example f2[WordList[],abcdefabgd]={liberalize, roisterous, stochastic}

The motive is to write a program that solves substitution ciphers, but could have other uses too!

usr_profile.png

User

( 4 months ago )

You can split the string and turn it into a pattern like this:

makePattern[word_String] := StringExpression @@ Map[
  With[{s = Symbol @ #}, Pattern[s, Blank[]]] &,
  Characters[word]];

findMatches[word_String, list_List : WordList[]] := 
  Select[list, StringMatchQ[makePattern @ word]];

Which gives you

findMatches @ "settings"

{"diffused", "golliwog", "greening", "greeting", "grooming", "grooving", "guzzling", "littoral", "rollover", "succubus", "suppress", "syllabus"}

what's your interest


forum_ban8_5d8c5fd7cf6f7.gif