এটি আরটি কী? - ডিক্রিপ্ট রট-এন


25

এখানে ফ্রিকোয়েন্সি অনুসারে ইংরেজী বর্ণমালার বর্ণগুলি রয়েছে:

e t a o i n s h r d l c u m w f g y p b v k j x q z

এটি, eসর্বাধিক ব্যবহৃত চিঠি এবং zসবচেয়ে কম সাধারণ। ( উইকিপিডিয়া থেকে ডেটা ।)

আপনার চ্যালেঞ্জটি হ'ল কিছু রট-এন 'পাঠ্য গ্রহণ করা যেমন:

ocdndnvqzmtnzxmzohznnvbzocvodnqzmtnzxpmzviynvaz

এটি ROT-21 (42 এর অর্ধেক) এর মাধ্যমে "এনক্রিপ্ট করা" এটি "এইিসিভারসেক্রেটমেসেজেজটিটিসিসিওকুরিয়ান্সডেসাফে" পাঠ্য। আপনার প্রোগ্রাম, উপরের ফ্রিকোয়েন্সি টেবিলটি ব্যবহার করে প্রতিটি অক্ষর কতটা ঘোরানো হয়েছিল এবং মূল পাঠ্য তা নির্ধারণ করতে সক্ষম হওয়া উচিত।

(আপনি যদি রট-এন এর সাথে পরিচিত না হন তবে এটি প্রতিটি অক্ষরকে মূলত পরিবর্তিত করে দেয় nexample উদাহরণস্বরূপ, রট -২ এ a -> c, b -> d, ..., x -> z, y -> a, z -> b

কিভাবে, আপনি জিজ্ঞাসা? আপনার অবশ্যই ব্যবহার করা উচিত (খুব নিষ্পাপ) অ্যালগরিদম হ'ল:

  • প্রত্যেকের জন্য nথেকে 0থেকে 25সমেত, ROT- আবেদন -nইনপুট স্ট্রিং। ( Gণাত্মক nকারণ আমরা এনক্রিপশনটি বিপরীত করতে চাই R -nROT- 26-nযদি কোনও সহজ হয় তবে ROT- এর সমতুল্য ))
  • অক্ষরের আপেক্ষিক ফ্রিকোয়েন্সি যোগ করে প্রতিটি ইনপুট স্ট্রিংকে একটি সংখ্যায় রূপান্তর করুন। eহয় 0, tহয় 1, aহয় 2ইত্যাদি উদাহরণস্বরূপ, স্ট্রিং এর জন্য সংশ্লিষ্ট সংখ্যা "hello"7 + 0 + 10 + 10 + 3 = 30 হয়।
  • সেই স্ট্রিংটি সন্ধান করুন যা সর্বনিম্ন সম্পর্কিত নম্বর রয়েছে।
  • আউটপুট যে স্ট্রিং এবং এটি সম্পর্কিত n

নিয়মাবলী:

  • ইনপুট যে কোনও জায়গায় যুক্তিসঙ্গত হতে পারে (STDIN, ফাংশন আর্গুমেন্ট, একটি ফাইল থেকে ইত্যাদি), এবং তাই আউটপুট (STDOUT, ফাংশন রিটার্ন মান, একটি ফাইল, ইত্যাদি) করতে পারে
  • যতক্ষণ না এটি সর্বদা অভিন্ন ফলাফল তৈরি করে ততক্ষণ আপনি একটি ভিন্ন অ্যালগরিদম ব্যবহার করতে পারেন। উদাহরণস্বরূপ, z0 হতে হবে এবং e25 হবে এবং সর্বোচ্চ সংখ্যা নির্বাচন করাও ঠিক okay
  • যদি দুটি স্ট্রিংয়ের অভিন্ন স্কোর থাকে তবে আপনি সেগুলির মধ্যে একটি (বা উভয়) আউটপুট চয়ন করতে পারেন। এটি একটি প্রান্তের মামলা এবং এটির জন্য আপনাকে কোনও অ্যাকাউন্ট করতে হবে না।
  • এটি , তাই বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জিতবে!

পরীক্ষার কেস:

ইনপুট: ocdndnvqzmtnzxmzohznnvbzocvodnqzmtnzxpmzviynvaz
আউটপুট:21 thisisaverysecretmessagethatisverysecureandsafe

ইনপুট: pmttwxmwxtmwnxzwoziuuqvoxchhtmakwlmowtnabiksmfkpivom
আউটপুট:8 hellopeopleofprogrammingpuzzlescodegolfstackexchange

ইনপুট: ftueimeqzodkbfqpiuftdaffiqxhqeaufygefnqbqdrqofxkemrq
আউটপুট:12 thiswasencryptedwithrottwelvesoitmustbeperfectlysafe

ইনপুট: jgtgkuvjghkpcnvguvecugvjcvaqwowuvfgetarv
আউটপুট:2 hereisthefinaltestcasethatyoumustdecrypt

আপনি যদি ভাবছিলেন, আপনি যে জাভাস্ক্রিপ্ট পরীক্ষা কোডটি লিখেছিলেন তার একটি জেএসফিডাল এখানে রয়েছে, যা আমি এটির মধ্যে ফেলে দেওয়া সমস্ত পরীক্ষার ক্ষেত্রে সফলভাবে ডিক্রিপ্ট করেছিলাম।


প্রান্তের কেসগুলি নোট করা কার্যকর হতে পারে। উদাহরণস্বরূপ, wtaadদিতে হবে 0 wtaadফলে, এবং vszzcদিতে হবে 25 wtaadফলে।
মেল্লামব্যাক

ট্রিপলরোট-এন এর প্রয়োগ সনাক্তকরণের জন্য আপনার অতিরিক্ত পয়েন্ট দেওয়া উচিত।
ব্যবহারকারী19713

@ ব্যবহারকারী19713 ট্রিপলোট কী? আমি বলতে চাইছি, ROT-6 এবং তিনবার ROT-2 এর মধ্যে পার্থক্য কী?
মিঃ লিস্টার

2
@ মিস্টারলিস্টার এটি একটি পুরানো ক্রিপ্টো রসিকতা যা ট্রিপলডিস থেকে প্রস্রাব বের করে।
ব্যবহারকারী 19713

আমরা কি ডিক্রিপ্টড স্ট্রিংয়ের পরে এন-রুট আউটপুট করতে পারি?
মেয়রমন্টি

উত্তর:


6

গল্ফস্ক্রিপ্ট - 87

এখানে প্রতারণা হ'ল প্রতিটি ঘূর্ণন একই সাথে তৈরি করা। যেহেতু আমাদের প্রতিটি রট এর পরে প্রতিটি চরিত্রের উপরে লুপ করা দরকার, আসুন আমরা প্রতিটি চরিত্রের উপরে লুপ করি, পুরো বর্ণমালা টুকরো করি, তারপরে এটি জিপ করে তুলি। সেখান থেকে প্রত্যাশা অনুযায়ী এগিয়ে যান: প্রতিটি ROT এর জন্য স্কোর গণনা করুন এবং সর্বনিম্ন চয়ন করুন।

অতিরিক্ত গল্ফড:

{97- 26,{97+}%.+''+>}/]{27<}%zip:d{{"etaoinshrdlcumwfgypbvkjxqz"?}%{+}*}%.$0=?.26\-\d=

কেবল একটু গল্ফড:

# the alphabet, and by frequency
26,{97+}%.+''+:a;
"etaoinshrdlcumwfgypbvkjxqz":f;

# build evey ROT decryption
{97-a>}/]{27<}%zip:d

# calculate likelihood
{{f?}%{+}*}%.

# find min
$0=

# output rotation factor and decryption
?.26\-\d=

8

হাস্কেল - 192 175

f y=sum.map(\x->length.fst$break(==x)y)
main=interact(\s->snd$minimum$[(f"etaoinshrdlcumwfgypbvkjxqz"r,show(26-n)++" "++r)|n<-[0..25],let r=map(\x->([x..'z']++['a'..])!!n)s])

চলমান

% ./rot-n <<< "pmttwxmwxtmwnxzwoziuuqvoxchhtmakwlmowtnabiksmfkpivom"
8 hellopeopleofprogrammingpuzzlescodegolfstackexchange

সংক্ষিপ্ত দৈর্ঘ্যের পরিবর্তে, আপনি আনারিতে সংখ্যার প্রতিনিধিত্বকারী তালিকা তৈরি করতে পারেন, উদাহরণস্বরূপ [1,1,1,1], এবং এটি একই ক্রম দেবে। ম্যাপিং এবং সংমিশ্রণটি তখন হয়ে যায় concatMapযা একটি তালিকা বোধগম্যতার সাহায্যে সংক্ষেপে লেখা যেতে পারে। কয়েকটি অন্যান্য কৌশলগুলির সাথে একত্রিত হয়ে আমি এটি 152 অক্ষরে সংক্ষিপ্ত করে রেখেছি : main=interact(\s->snd$minimum[([1|x<-r,_<-fst$span(/=x)"etaoinshrdlcumwfgypbvkjxqz"],show(26-n)++' ':r)|n<-[0..25],r<-[[([x..'z']++['a'..])!!n|x<-s]]]).
হামার

7

গল্ফস্ক্রিপ্ট, 112 108 102 100 টি অক্ষর

{{}/]{97-}%}:b~:|;"etaoinshrdlcumwfgypbvkjxqz"b:f,:&,{:x[|{&x-+&%f?}%{+}*\]}%$0=1=:x|{&x-+&%97+}%''+

আমি পুনরায় ডিক্রিপ্টিং শেষে পুনরাবৃত্তি সম্পর্কে খুশি নই, তবে মেহ।

অবরুদ্ধ

# store input IDs (a = 0, b = 1, etc.) in s
[{}/]{97-}%:s;
# store frequency data IDs in f (blah, repetition)
"etaoinshrdlcumwfgypbvkjxqz"[{}/]{97-}%:f

# for each number from 0 to 26 (length of previous string left unpopped)...
,,{
  # the number is x
  :x;
  # return an array of...
  [
    # the score
    s{x 26\-+26%f?}%{+}*
    # and the n
    x
  ]
}%

# use $ort to find the n to output
$0=1=:x

# get the string that the n corresponded to (blah, more repetition)
s{x 26\-+26%97+}%''+

"ইনপুট যে কোনও জায়গায় যুক্তিসঙ্গত হতে পারে" গল্ফস্ক্রিপ্টকে সহায়তা করে। প্রথমে আমি বুঝতে পারি না যে কেন আমাদের উভয় স্ক্রিপ্টগুলি শেষের দিকে একটি অতিরিক্ত অক্ষর মুদ্রণ করে বলে মনে হয়েছিল, যতক্ষণ না আমি বুঝতে পেরেছি echoডিফল্ট হিসাবে একটি নতুন লাইন রাখে, যা দোভাষী দখল করে।
কাউচাঁদ

6

জাভাস্ক্রিপ্ট (205)

f='zqxjkvbpygfwmucldrhsnioate';a='abcdefghijklmnopqrstuvwxyz';for(s=prompt(o=m=n=0)
,i=27;i--;w>m&&(m=w,n=i,o=u))for(u='',w=c=0;c<s.length;w+=f.indexOf(x))u+=x=(a+a)[a
.indexOf(s[c++])+i];alert((26-n)+' '+o)

আমি মনে করি এটি এখনও আরও কিছুটা গল্ফ করা যেতে পারে, তাই পরামর্শগুলি স্বাগত!

সমাধানটি বুঝতে সহায়তা করার জন্য কয়েকটি নোট

  • m, nএবং oসর্বোচ্চ স্কোর ট্র্যাক করুন।
  • uএবং wবর্তমানের জন্য যথাক্রমে চরিত্র এবং মান ফলাফল ট্র্যাক করুনi
  • (a+a)অতীতকে মোড়ানো অবস্থায় ওভারফ্লো প্রতিরোধে সহায়তা করে zএবং এটি করার চেয়ে কম%26
  • বিপরীত ক্রমে আমার ফ্রিকোয়েন্সি রয়েছে তাই আমি মিনিটের পরিবর্তে সর্বাধিক অনুসন্ধান করতে পারি।

প্রুফ: http://jsfiddle.net/J9ZyV/5/



4

সি # + লিনক - 273 264

একটি ফাংশন যা ইনপুট স্ট্রিং নেয় এবং ডিকোডড স্ট্রিংটি দেয় এবং অফসেট (প্রয়োজনীয়তা অনুসারে) দেয়:

static Tuple<string,int> d(string s){var r=Enumerable.Range(0,25).Select(i=>string.Concat(from c in s select (char)((c-97+i)%26+97))).OrderBy(x=>(from c in x select "etaoinshrdlcumwfgypbvkjxqz".IndexOf(c)).Sum()).First();return Tuple.Create(r,(s[0]-r[0]+26)%26);}

মন্তব্যে অসম্পূর্ণ:

static Tuple<string,int> d(string s)
{
    var r=Enumerable.Range(0,25)                                               // for every possible offset i
          .Select(i=>string.Concat(from c in s select (char)((c-97+i)%26+97))) // calculate rot_i(input string)
          .OrderBy(                                                            // order these by their score
              x=>(
              from c in x select "etaoinshrdlcumwfgypbvkjxqz".IndexOf(c)       // lookup frequency of each character
              ).Sum()                                                          // and sum each frequency to get the score
           ).First();                                                          // get the first one (lowest score)

    return Tuple.Create(r,(s[0]-r[0]+26)%26);                                  // compute offset and return results
}

ছোট পরীক্ষা চালক ( System.Coreলিঙ্কের জন্য রেফারেন্সিং সংকলন করতে ভুলবেন না ):

using System;
using System.Linq;

namespace codegolf
{
    class Program
    {
        static Tuple<string,int> d(string s){var r=Enumerable.Range(0,25).Select(i=>string.Concat(from c in s select (char)((c-97+i)%26+97))).OrderBy(x=>(from c in x select "etaoinshrdlcumwfgypbvkjxqz".IndexOf(c)).Sum()).First();return Tuple.Create(r,(s[0]-r[0]+26)%26);}

        static void Main(string[] args)
        {
            while (true)
            {
                var input = Console.ReadLine();
                if (input == null) break;
                var retval = d(input);
                Console.WriteLine(String.Format("{0} {1}", retval.Item2, retval.Item1));
            }
        }
    }
}

প্রদান:

$ mcs /reference:System.Core.dll main.cs && mono ./main.exe
ocdndnvqzmtnzxmzohznnvbzocvodnqzmtnzxpmzviynvaz
21 thisisaverysecretmessagethatisverysecureandsafe
pmttwxmwxtmwnxzwoziuuqvoxchhtmakwlmowtnabiksmfkpivom
8 hellopeopleofprogrammingpuzzlescodegolfstackexchange
ftueimeqzodkbfqpiuftdaffiqxhqeaufygefnqbqdrqofxkemrq
12 thiswasencryptedwithrottwelvesoitmustbeperfectlysafe
jgtgkuvjghkpcnvguvecugvjcvaqwowuvfgetarv
2 hereisthefinaltestcasethatyoumustdecrypt
thisisaverysecretmessagethatisverysecureandsafe
0 thisisaverysecretmessagethatisverysecureandsafe

আমি মনে করি আপনি ভুলভাবে গণনা করেছেন - আপনার বর্তমান সমাধানটি আসলে ২ 26৩ টি অক্ষর। এছাড়াও আপনি মধ্যে স্থান সরিয়ে আরও একটি গৃহস্থালির কাজ সংরক্ষণ করতে পারবেনTuple<string,int> d
mellamokb

এখানে আমার সংস্করণটি যা বাস্তবায়নের খুব কাছাকাছি তবে কিছুটা সংক্ষিপ্ত:Tuple<int,string>f(string x){return Enumerable.Range(0,25).Select(n=>Tuple.Create(26-n,string.Concat(x.Select(c=>(char)((c-97+n)%26+97))))).OrderBy(t=>(t.Item2.Select(c=>"etaoinshrdlcumwfgypbvkjxqz".IndexOf(c))).Sum()).First();}
প্যারেজ করুন

আমি আপনাকে ব্যবহার করা উচিত Range(0, 26), না 25
রোলিং

4

ডিজি - 137 130 129 128 বাইট

f=t->min key:(t->sum$map 'etaoinshrdlcumwfgypbvkjxqz'.index$snd t)$map(n->n,''.join$map(c->chr$((ord c + 7-n)%26+ 97))t)(0..26)

উদাহরণ:

>>> f 'ocdndnvqzmtnzxmzohznnvbzocvodnqzmtnzxpmzviynvaz'
(21, 'thisisaverysecretmessagethatisverysecureandsafe')
>>> f 'pmttwxmwxtmwnxzwoziuuqvoxchhtmakwlmowtnabiksmfkpivom'
(8, 'hellopeopleofprogrammingpuzzlescodegolfstackexchange')
>>> f 'ftueimeqzodkbfqpiuftdaffiqxhqeaufygefnqbqdrqofxkemrq'
(12, 'thiswasencryptedwithrottwelvesoitmustbeperfectlysafe')
>>> f 'jgtgkuvjghkpcnvguvecugvjcvaqwowuvfgetarv'
(2, 'hereisthefinaltestcasethatyoumustdecrypt')

অবহেলিত কোড:

func = t ->
  #: Compute the score of the text `t` with respect to the frequency table.
  #: score :: (int, str) -> int
  score = t ->
    sum $ map 'etaoinshrdlcumwfgypbvkjxqz'.index $ snd t

  #: Compute rot-n of the string `t`. Return the offset and the shifted text.
  #: rot :: int -> (int, str)
  rot = n ->
    n, ''.join $ map (c->chr $ ((ord c + 7 - n) % 26 + 97)) t

  # return the minimum (computed by `score`) amongst all shifted messages
  min key: score $ map rot (0..26)

আপনি কি এই জায়গাগুলি চারপাশে c - 97এবং সরাতে পারবেন না (0..26)?
এমনিপ

আমি কেবল দ্বিতীয়টি সরাতে পারি। এখনই করছে। আমি পাশাপাশি কয়েকটি উদাহরণ যুক্ত করব।
রুবিক

1
এর dgআগে কখনও শুনিনি । আপনি একটি লিঙ্ক প্রদান করতে পারে?
TheDoctor

@ ডক্টর: অবশ্যই! pyos.github.io/dg হল হোমপেজ এবং pyos.github.com/dg/tutorial টিউটোরিয়াল।
রুবিক

আপনি 97 টি বিয়োগের পরিবর্তে 7 টি যোগ করে একটি অক্ষর সংরক্ষণ করতে পারেন Mod মোডুলো 26 তারা একই জিনিস।
হামার

4

জে - 92 চর

কিছুটা কুরুচিপূর্ণ হাঁসফাঁস, তবে এটি কাজ করে। দুটি লাইনে সংখ্যা এবং তারপরে আউটপুট দেয়।

(26|](-1!:2&2&.":)(/:'ctljapqhewvknfdsyigbmuoxrz')+/@i."1(i.<./@:)26|(i.-27)+/])&.(_97+3&u:)

আপনি যদি চান যে সেগুলি একই লাইনে থাকে, স্থান পৃথক হয়, তবে এটি কেবল 93 চর পর্যন্ত চলে যায় , তবে একটি কুরুচিপূর্ণ রুট নেয়।

((":@],[:u:32,97+26|-)(/:'ctljapqhewvknfdsyigbmuoxrz')+/@i."1(i.<./@:)26|(i.-27)+/])@(7+3&u:)

জন্য একটি ব্যাখ্যা (/:'ctljapqhewvknfdsyigbmuoxrz'): এই ক্রিয়া, আমরা একটি = 0, বি = 1, সি = 2, ইত্যাদি চিঠি মান স্ট্রিং এর অক্ষর মান সঙ্কেতাক্ষরে লিখা কাজ etaoinshrdlcumwfgypbvkjxqz, সবচেয়ে কম পথ এই জন্য সাজানোর বিন্যাস নিতে আসলে অদ্ভুত স্ট্রিং এটি কারণ সূচক 4 এ বি, সূচকে 19 এ বি, 0 ডিগ্রি সি, 14 এ ডি এবং আরও অনেক কিছু রয়েছে; সুতরাং 4 19 0 14 8 13 ...যখন আপনি এটি গ্রেড করবেন তখন সাজ্ট ক্রমানুসরণ হ'ল /:, এবং আপনি ঠিক এর জন্য সংখ্যার মান পাবেন etaoin...

ব্যবহার:

   (26|](-1!:2&2&.":)(/:'ctljapqhewvknfdsyigbmuoxrz')+/@i."1(i.<./@:)26|(i.-27)+/])&.(_97+3&u:) 'ocdndnvqzmtnzxmzohznnvbzocvodnqzmtnzxpmzviynvaz'
21
thisisaverysecretmessagethatisverysecureandsafe

   NB. naming for convenience
   f =: (26|](-1!:2&2&.":)(/:'ctljapqhewvknfdsyigbmuoxrz')+/@i."1(i.<./@:)26|(i.-27)+/])&.(_97+3&u:)
   f 'pmttwxmwxtmwnxzwoziuuqvoxchhtmakwlmowtnabiksmfkpivom'
8
hellopeopleofprogrammingpuzzlescodegolfstackexchange
   f 'wtaad'
0
wtaad

3

q, 97

{(w;m w:g?min g:(+/')("etaoinshrdlcumwfgypbvkjxqz"!t)m:(t!u!/:rotate[;u:.Q.a]'[(-)t:(!)26])@\:x)}

q) tests:(
    "ocdndnvqzmtnzxmzohznnvbzocvodnqzmtnzxpmzviynvazocdndnvqzmtnzxmzohznnvbzocvodnqzmtnzxpmzviynvaz";
    "pmttwxmwxtmwnxzwoziuuqvoxchhtmakwlmowtnabiksmfkpivom";
    "ftueimeqzodkbfqpiuftdaffiqxhqeaufygefnqbqdrqofxkemrq";
    "jgtgkuvjghkpcnvguvecugvjcvaqwowuvfgetarv")

q) f:{(w;m w:g?min g:(+/')("etaoinshrdlcumwfgypbvkjxqz"!t)m:(t!u!/:rotate[;u:.Q.a]'[(-)t:(!)26])@\:x)}

q) f each tests
21 "thisisaverysecretmessagethatisverysecureandsafethisisaverysecretmessagethatisverysecureandsafe"
8  "hellopeopleofprogrammingpuzzlescodegolfstackexchange"
12 "thiswasencryptedwithrottwelvesoitmustbeperfectlysafe"
2  "hereisthefinaltestcasethatyoumustdecrypt"

2

এপিএল - 70 টি অক্ষর

F←{↑⍋+/'etaoinshrdlcumwfgypbvkjxqz'⍳⊃(⍳26){l[(⍺⌽l←⎕UCS 97+⍳26)⍳⍵]}¨⊂⍵}

উদাহরণ:

      F 'ocdndnvqzmtnzxmzohznnvbzocvodnqzmtnzxpmzviynvaz'
21
      F 'pmttwxmwxtmwnxzwoziuuqvoxchhtmakwlmowtnabiksmfkpivom'
8
      F 'ftueimeqzodkbfqpiuftdaffiqxhqeaufygefnqbqdrqofxkemrq'
12
      F 'jgtgkuvjghkpcnvguvecugvjcvaqwowuvfgetarv'
2

আমি নিশ্চিত যে এটি আরও সংকোচনের উপায় আছে এবং আমি অন্য যে কোনও এপিএল ব্যবহারকারীকে সেটির সমাধানের জন্য আসতে আমন্ত্রণ জানাই।


6
আপনাকে সিদ্ধান্ত নেওয়া স্ট্রিংটিও আউটপুট দিতে হবে ...
ডোরকনব

2

পাইথন 188

x="abcdefghijklmnopqrstuvwxyz"
y=input()
r=lambda n:"".join(x[x.find(i)-n]for i in y)
s={sum("etaoinshrdlcumwfgypbvkjxqz".find(b)for b in r(a)):(a,r(a))for a in range(26)}
print(s[min(s)])

1

পার্ল: ফ্রিকোয়েন্সি টেবিল সহ 256 চর (পাঠযোগ্যতার জন্য প্লাস নিউলাইনস):

@f=unpack("W*","etaoinshrdlcumwfgypbvkjxqz");
@c=unpack("W*",<>);$m=ord("a");$b=1E10;
for$n(0..25){$s=0;$t="";
for$x(0..scalar@c){$r=($c[$x]-$n-$m)%26+$m;$t.=chr($r);
for(0..scalar@f){if($r==$f[$_]){$s+=$_}}}
if($s<$b){$b=$s;$w=$t;$a=$n}}
printf"%d %s\n",$a,$w;

পাঠ্যটি যেমন সরবরাহ করা হয়:

echo "ocdndnvqzmtnzxmzohznnvbzocvodnqzmtnzxpmzviynvaz" | perl ./freq.pl 
21 thisisaverysecretmessagethatisverysecureandsafewm

যদি আপনি আদেশ (ক) এর মান এবং @f এর দৈর্ঘ্য বেক-ইন করতে চান তবে 12 চরটি নামান


1

এলম - 465

কোনও গল্ফিং পুরষ্কার জিততে যাচ্ছে না, তবে এটি একটি স্ট্যাটিক ওয়েবপৃষ্ঠা তৈরি করে যা [(rotation number, rotated string)]আপনার টাইপের সাথে ফর্মের একটি তালিকা প্রদর্শন করে ।

দ্রষ্টব্য: এখনও এখানে কাজ করছে না তবে আপনি এটি অফিসিয়াল সম্পাদকের মধ্যে অনুলিপি করে এটি চালাতে পারেন।

import String as S
import Char (..)
import Graphics.Input (..)
import Graphics.Input.Field (..)
f="ETAOINSHRDLCUMWFGYPBVKJXQZ"
r s n=let t c=mod(toCode c-65+n)26+65 in map(fromCode . t)(S.toList s)
w s=case s of 
 ""->0
 s->sum(S.indexes(S.left 1 s)f)+w(S.dropLeft 1 s)
b s=sort<|map(\x->((w . S.fromList . r s)x,(26-x,S.fromList<|r s x)))[0..25]
c=input noContent
main=above<~(field defaultStyle c.handle id""<~c.signal)~(asText . b . .string<~c.signal)

1

পাইথন 2, 171

f,R,i='zqxjkvbpygfwmucldrhsnioate',{},raw_input();a=sorted(f)*2
for n in range(26):_=''.join(a[ord(x)-71-n]for x in i);R[sum(2**f.index(x)for x in _)]=n,_
print R[max(R)]
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.