কুক এবং হুইটস্টোন টেলিগ্রাফ, পাঁচ-সুই


20

সংজ্ঞা

উইকিপিডিয়া অনুসারে :

কুক এবং হুইটস্টোন টেলিগ্রাফ ছিল 1830 এর দশক থেকে ইংরেজ উদ্ভাবক উইলিয়াম ফাদারগিল কুক এবং ইংরেজ বিজ্ঞানী চার্লস হুইটস্টনের উদ্ভাবিত প্রাথমিক বিদ্যুত টেলিগ্রাফ সিস্টেম was বাণিজ্যিক পরিষেবাতে এটি প্রথম টেলিগ্রাফ সিস্টেম ছিল। রিসিভারে বেশ কয়েকটি সূঁচ ছিল যা বৈদ্যুতিন চৌম্বকীয় কুণ্ডলী দ্বারা সরানো হতে পারে একটি বোর্ডের চিঠিগুলিতে নির্দেশ করে। এই বৈশিষ্ট্যটি প্রারম্ভিক ব্যবহারকারীরা পছন্দ করেছেন যারা কোড শিখতে চান না এবং যারা নিয়োগকর্তারা কর্মীদের প্রশিক্ষণে বিনিয়োগ করতে চান না তারা তাদের পছন্দ করেছিলেন।

এটি এর মতো কাজ করে:

কুক এবং হুইটস্টোন টেলিগ্রাফের স্কিম, পাঁচ-সুই

মাঝের পাঁচটি সূঁচ রয়েছে, যা ঘড়ির কাঁটার দিক দিয়ে প্রতিবিম্বিত করা যেতে পারে (মাঝের সূচির মতো) বা অ্যান্টি-ক্লকওয়াইজ (শেষ সূঁচের মতো)।

উপরের ছবিটিতে যে, দুই deflected সূঁচ চিঠি নির্দেশ G, যার মানে চিঠি প্রেরণ করা হচ্ছে / পেয়েছি চিঠি G

লক্ষ্য করুন অক্ষর C, J, Q, V, X, Zঅনুপস্থিত এবং এইভাবে অন্য অক্ষর দ্বারা প্রতিস্থাপিত করা থাকতে হবে।

কার্য

আপনি ABDEFGHIKLMNOPRSTUWYইনপুট হিসাবে একটি অক্ষর পাবেন , এবং আপনি পাঁচটি সূঁচ সম্পর্কিত কনফিগারেশন আউটপুট আউটপুট হিসাবে |, অপরিবর্তিত হিসাবে , হিসাবে প্রতিবিম্বিত ঘড়ির কাঁটা /, এবং হিসাবে বিরোধী-ঘড়ির কাঁটার দিক হিসাবে প্রতিফলিত হবে \

Testcases

এটি সমস্ত সম্ভাব্য ইনপুটগুলি কভার করে

input output
A     /|||\
B     /||\|
D     |/||\
E     /|\||
F     |/|\|
G     ||/|\  (explanation: see above)
H     /\|||
I     |/\||
K     ||/\|
L     |||/\
M     \/|||
N     |\/||
O     ||\/|
P     |||\/
R     \|/||
S     |\|/|
T     ||\|/
U     \||/|
W     |\||/
Y     \|||/

বিধি / আবশ্যকতা

  • প্রতিটি জমাটি একটি সম্পূর্ণ প্রোগ্রাম বা ফাংশন হওয়া উচিত। যদি এটি কোনও ফাংশন হয় তবে এটি অবশ্যই প্রোগ্রামের নীচে ফাংশন কল যুক্ত করে প্রয়োজনীয়ভাবে চালানো উচিত। অন্য যে কোনও কিছু (যেমন সি তে শিরোনাম) অবশ্যই অন্তর্ভুক্ত থাকতে হবে।
  • যদি এটি সম্ভব হয় তবে এমন কোনও সাইটের লিঙ্ক সরবরাহ করুন যেখানে আপনার প্রোগ্রামটি পরীক্ষা করা যেতে পারে।
  • আপনার প্রোগ্রাম অবশ্যই কিছু লিখতে হবে না STDERR
  • স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ।
  • আপনার প্রোগ্রামটি যে কোনও ক্ষেত্রে আউটপুট দিতে পারে তবে এটি অবশ্যই মুদ্রিত হওয়া উচিত (অ্যারে বা অনুরূপ নয়)।

স্কোরিং

বাইট অনুসারে প্রোগ্রামগুলি স্কোর করা হয়, ইউটিএফ -8 এ ডিফল্টরূপে বা আপনার পছন্দের ভিন্ন চরিত্রের সেট।

Eventually, কমপক্ষে বাইট সহ উত্তরটি জিতবে।

জমা

আপনার উত্তরটি প্রদর্শিত হয়েছে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেম্পলেটটি ব্যবহার করে আপনার উত্তরটি শিরোনাম দিয়ে শুরু করুন:

# Language Name, N bytes

Nআপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:

# Ruby, <s>104</s> <s>101</s> 96 bytes

যদি আপনি নিজের শিরোনামে একাধিক সংখ্যা অন্তর্ভুক্ত করতে চান (যেমন আপনার স্কোর দুটি ফাইলের সমষ্টি বা আপনি পৃথকভাবে দোভাষী পতাকা দণ্ডের তালিকা করতে চান), নিশ্চিত করুন যে আসল স্কোরটি শিরোনামের শেষ সংখ্যা:

# Perl, 43 + 2 (-p flag) = 45 bytes

আপনি ভাষাটির নামটিকে একটি লিঙ্কও বানাতে পারেন যা লিডারবোর্ড স্নিপেটে প্রদর্শিত হবে:

# [><>](http://esolangs.org/wiki/Fish), 121 bytes

লিডারবোর্ড

নিয়মিত লিডারবোর্ড এবং ভাষার দ্বারা বিজয়ীদের একটি সংক্ষিপ্ত বিবরণ উভয়ই তৈরি করতে এখানে একটি স্ট্যাক স্নিপেট।

উত্তর:


6

সি, 124 107 98 বাইট

একটি ফাংশন হিসাবে:

x,i;W(char*v){for(i=strcspn(" MRUYH NSWEI OTBFK PADGL",v);x<5;++x)putchar(x^i%5?x^i/5?124:92:47);}

// main(int c,char**v){W(v[1]);}

এটি গ্রিডটি 45 ডিগ্রি ঘোরানো এবং ফলস্বরূপ ব্লক থেকে সারি / কলামটি অনুসন্ধান করে কাজ করে।


সম্পূর্ণ এক্সিকিউটেবল (107 বাইট) হিসাবে:

x;main(i,v)char**v;{for(i=strcspn(" MRUYH NSWEI OTBFK PADGL",v[1]);x<5;++x)putchar(x^i%5?x^i/5?124:92:47);}

একটি বিকল্প পূর্ণ নির্বাহযোগ্য: (একই বাইকাউন্ট তবে স্টিডিনের কাছ থেকে ইনপুট নেয় এবং আউটপুট পরে নতুন লাইন অন্তর্ভুক্ত করে)

main(i){char*r=" MRUYH NSWEI OTBFK PADGL",b[]="|||||";i=strchr(r,getchar())-r;b[i%5]=47;b[i/5]=92;puts(b);}

ভাঙ্গন:

x;                                      // Implicit int declaration
main(i,v)char**v;{                      // K&R function declaration to save a byte
    for(i=strcspn("<...>",v[1]);        // Find index of input in lookup table
        x<5;++x)                        // Loop 0 to 4
        putchar(x^i%5?x^i/5?124:92:47); //  Print /, \ or | depending on value of i
}

বিকল্প ভাঙ্গন:

main(i){
    char*r="<...>",                     // Store lookup table
    b[]="|||||";                        // Malleable base string for return
    i=strchr(r,getchar())-r;            // Find input in lookup table
    b[i%5]=47;                          // Set correct char in output to /
    b[i/5]=92;                          // Set correct char in output to \
    puts(b);                            // Print result
}

বোনাস: উইকিপিডিয়া পৃষ্ঠা থেকে 0-9 এক্সটেনশন:

x;main(i,v)char**v;{for(i=strcspn(" MRUY6H NSW7EI OT8BFK P9ADGL 012345",v[1]);x<5;++x)putchar(x^i%6?x^i/6?124:92:47);}

বোনাস বোনাস: উভয় এনকোডিং এবং ডিকোডিংয়ের জন্য একটি সম্পূর্ণ (অগোছালো থাকলে) প্রোগ্রাম:

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdbool.h>

static const char *REF = " MRUY6H NSW7EI OT8BFK P9ADGL 012345 ";

char sub(char c) {
    c = toupper(c);
    if(c == 'C') { c = 'K'; }
    if(c == 'J') { c = 'G'; }
    if(c == 'Q') { c = 'K'; }
    if(c == 'V') { c = 'W'; }
    if(c == 'X') { c = 'S'; }
    if(c == 'Z') { c = 'S'; }
    return c;
}

void print_encoded(char c) {
    char b[] = "|||||";
    const char *p = strchr(REF, sub(c));
    if(!p) { return; }
    int i = p - REF;
    if(i) {
        if(i%6 < 5) { b[i%6] = '/'; }
        if(i/6 < 5) { b[i/6] = '\\';}
    }
    puts(b);
}

char decode(const char *m) {
    int pf = 5;
    int pb = 5;
    for(int x=0;x<5;++x) {
        if(m[x] == '/') {
            pf=x;
        } else if(m[x] == '\\') {
            pb=x;
        } else if(m[x] == '\0') {
            return '!';
        }
    }
    return REF[pb*6+pf];
}

int main(int c, const char **v) {
    int inArg;
    bool isDecode;
    if(c > 1 && (strcmp(v[1], "-h") == 0 || strcmp(v[1], "--help") == 0)) {
        printf("Usage:\n  %s [-d] [<input>]\n\n", v[0]);
        printf("Converts input to/from Cooke and Wheatstone 5-needle encoding.\n\n");
        printf("If no input arguments are given, takes input from stdin.\n\n");
        printf("Parameters:\n");
        printf("  -h --help   Displays help.\n");
        printf("  -d --decode Switches to decode mode.\n");
        printf("\n");
        return 0;
    } else if(c > 1 && (strcmp(v[1], "-d") == 0 || strcmp(v[1], "--decode") == 0)) {
        inArg = (c > 2 ? 2 : 0);
        isDecode = true;
    } else if(c > 1) {
        inArg = 1;
        isDecode = false;
    } else {
        inArg = 0;
        isDecode = false;
    }
    if(isDecode) {
        if(inArg == 0) {
            char ln[6];
            while(scanf("%5s", ln) == 1) {
                putchar(decode(ln));
            }
        } else {
            for(int p = inArg; p < c; ++p) {
                for(const char *q = v[p], *e = strchr(v[p], '\0'); q < e; q += 5) {
                    while(*q == ' ') { ++q; }
                    putchar(decode(q));
                }
            }
        }
        putchar('\n');
    } else {
        if(inArg == 0) {
            int c;
            while((c = getchar()) != EOF) {
                print_encoded(c);
            }
        } else {
            for(const char *p = v[inArg]; *p; ++p) {
                print_encoded(*p);
            }
        }
    }
    return 0;
}

5

সিজেম, 42 বাইট

r"HEBAMRUYIFDNSWKGOTLP"5e!{_$"/\|"er}%_&er

এটি এখানে পরীক্ষা করুন

আউটপুটগুলির অনেক কাঠামো রয়েছে যদিও আমি সম্পূর্ণ নিশ্চিত নই এখনও আমি দক্ষতার সাথে ফলাফলগুলি বুনতে পারি (বাইটের শর্তে)। সুতরাং এটি এখনও একটি সারণী, তবে আমি তালিকার ক্রমবিন্যাসের মাধ্যমে সম্ভাব্য সুই কনফিগারেশনের তালিকা তৈরি করছি [0 1 2 3 4]


3

এমএটিএল , 50 বাইট

'!#$kYAqof^EZC}40iA*9n4JK?45/J~v'6Y2'\|/'Za5eioZ)!

এটি অনলাইন চেষ্টা করুন!

সংক্ষিপ্ত ব্যাখ্যা

কোড দেখানো স্ট্রিং (decompresses '!#$...J~v') একটি স্ট্রিং মধ্যে ধারণকারী \, |এবং /; এটিকে পুনরায় আকার দেয় এমন একটি অ্যারে যেখানে প্রতিটি কলাম একটি বর্ণের সাথে মিলে যায়; এবং ইনডেক্সগুলি যা ইনপুট অক্ষরের সাথে অ্যারে হয়।

দীর্ঘ ব্যাখ্যা

বিভক্ত স্ট্রিংটি বেস -3 থেকে বেস -99 এনকোডিং ব্যবহার করে (অফলাইন) প্রাপ্ত হয়েছে। চ্যালেঞ্জের তথ্যগুলি একটি দীর্ঘ স্ট্রিংয়ে সাজানো হয়েছে \, |এবং /যেখানে 5অক্ষরের প্রতিটি গ্রুপ একটি বর্ণের সাথে মিলে যায়। এই স্ট্রিংটি কিছু বড় সংখ্যার বেস -3 উপস্থাপনা হিসাবে ব্যাখ্যা করা হয়, যা সমস্ত মুদ্রণযোগ্য এএসসিআইআই অক্ষরকে অঙ্ক হিসাবে ব্যবহার করে বেস -৯৯ তে রূপান্তরিত হয়। ফলাফলটি সংকুচিত স্ট্রিং যা কোডে প্রদর্শিত হয় ( '!#$...J~v')।

প্রোগ্রাম এই স্ট্রিং, যে, বর্ণমালা বেস -3 বেস-95 থেকে রূপান্তর decompressing শুরু \, |, /। ডিকম্প্রেসড স্ট্রিংটিকে 5-সারি 2D চর অ্যারেতে পুনরায় আকার দেওয়া হয়, যাতে প্রতিটি কলাম একটি বর্ণকে উপস্থাপন করে। আসুন এই অ্যারে কল করুন Λ। এই অ্যারেটি ইনপুট চিঠির ASCII কোড পয়েন্ট ব্যবহার করে সূচিযুক্ত করা হবে।

অ্যারেতে Λদুটি কৌশল রয়েছে:

  1. এটি এর মধ্যে Aএবং এর মধ্যে থাকা পাঁচটি অক্ষরের জন্য ডামি মানগুলি পূর্ণ হয়েছে Y;
  2. এটি L(না A) দিয়ে শুরু হয় এবং তারপরে বিজ্ঞপ্তি দিয়ে এগিয়ে যায়।

এই দুটি কৌশলটির কারণগুলি নিম্নরূপ:

  1. চিঠির Aকোড পয়েন্ট রয়েছে 65। শেষ Yপয়েন্টটি হ্যান্ডেল করা দরকার কোড কোড সহ 89। সুতরাং 25কিছু মধ্যবর্তী মান (যেমন চিঠি C) উপস্থিত না থাকলেও আমাদের মানগুলির একটি ব্যাপ্তি পরিচালনা করতে হবে । ইনডেক্সিংয়ের সুবিধার্থে, পাঁচটি অনুপস্থিত চিঠিগুলির মধ্যে Aএবং Yএকটি ডামি উপস্থাপনায় পূর্ণ করা হয়েছে, সুতরাং এগুলির একটি কলাম রয়েছে Λ। সুতরাং, Λআকার 5 × 25 হয়।

  2. মডুলার ইনডেক্সিং ব্যবহার করা হয়। চিঠি সুতরাং A, অথবা সংখ্যা 65, হিসাবে একই 65 mod 25, যে হয় 15। অতএব Aকলামে হতে হবে 15এর Λ, Bকলামে 16, ..., এবং Yকলামে 14

মন্তব্য করা কোড

'!#$kYAqof^EZC}40iA*9n4JK?45/J~v'     % Compressed string (in base-95)
6Y2                                   % Predefined literal 'AB...Z': source alphabet
                                      % for decompression
'\|/'                                 % Target alphabet for decompression
Za                                    % Change of base representation (decompress)
5e                                    % Reshape into 5-row array `Λ`
i                                     % Input letter
o                                     % Convert to number (ASCII code point)
Z)                                    % Use as column index into `Λ`
!                                     % Transpose into a row. Implicitly display

3

পাইথন 2, 172 152 151 79 বাইট

lambda x:r'/|||\/|||/\|||/|\||/||\|/||'['APONM LKIHY GFEWU DBTSR'.find(x):][:5]

কোনও অ্যালগরিদম নেই, কেবল একটি সারণী।

@ লিকইনুনকে 20 বাইট সংরক্ষণ করা হয়েছে!

@ দ্য বাইকিংভাইকিংয়ের জন্য একটি বাইট সংরক্ষণ করা!

সংরক্ষিত একটি খুব বড় 72 @Keeta ধন্যবাদ বাইট!


আপনি -1 বাইটের findপরিবর্তে ব্যবহার করতে পারেন index
দ্য বাইকিংভিকিং

2
আপনি যদি স্ল্যাশগুলির ওভারল্যাপের সুবিধা গ্রহণ করেন তবে আপনি 72 টি অক্ষর কমিয়ে ল্যাম্বদা x: r '/ ||| \ / ||ype / \ ||| / | \ || / || \ | / || '[' এপিএনএম এলকিহি জিফিউইউ ডিবিটিএসআর'.ফাইন্ড (এক্স):] [: 5]
কেতা - মনিকা পুনরুদ্ধার করুন


1

জাভাস্ক্রিপ্ট (ES6), 97 89 বাইট

c=>(n=`ABEHMDFINRGKOSULPTWY`.search(c),s=[...`|||||`],s[4-n%5]=`\\`,s[n>>2]=`/`,s.join``)

সম্পাদনা করুন: প্যাডিংয়ের দরকার নেই এমন লুকিং টেবিলটিতে স্যুইচ করে 3 বাইট সংরক্ষণ করা হয়েছে। স্ট্রিং সম্পাদনা করার পরিবর্তে অ্যারে উপাদানগুলি সেট করে 5 বাইট সংরক্ষণ করা হয়েছে।

ব্যাখ্যা: টেবিলটি ABEHMDFINRGKOSULPTWYএমনভাবে সাজানো হয়েছে যাতে আপনি যদি এটি 4 টি সংলগ্ন অক্ষরের 5 টি গ্রুপে বিভক্ত করেন তবে গ্রুপের প্রতিটি অক্ষর /ডায়াগ্রামে একই স্লেন্টের উপর থাকে, যখন আপনি সূচকে 5 টি করে বিভক্ত করেন তবে প্রতিটি সূচি মডিউল 5 গ্রহণ করে গ্রুপের চিঠিটি \ডায়াগ্রামে একই হস্তান্তরিত হয়। এই পরবর্তী গোষ্ঠীগুলি বিপরীত ক্রমে রয়েছে তবে এটি 4 থেকে বিয়োগ করে সহজেই পরিচালনা করা হয় (টেবিলটি সাজানো যাতে পূর্ববর্তী গোষ্ঠীগুলি বিপরীত ক্রমে ঠিক করতে আরও বেশি খরচ করে))


1

ভিবিএ, 106 বাইট

Function v(s):v="|||||":p=InStr(1,v &"MRUYH NSWEI OTBFK PADGL",s):Mid(v, p\5)="\":Mid(v, (p Mod 5)+1)="/"

ফাইনাল বাইট enterযা স্বয়ংক্রিয়ভাবে উত্পন্ন করে End Functionএই প্রকল্পটির অনুমোদনের সাথে @ ডেভ প্রস্তুত

স্প্রেডশিটে বা ভিবিএ তাত্ক্ষণিক উইন্ডোতে যেমন ডাকা ?v("K")


0

গণিত, 129 বাইট

""<>(IntegerDigits[IntegerDigits[36^^3ucgb2abu46m2rewohw225q4lc6hczypueyb3,190][[LetterNumber@#]],3,5]/.{0->"|",1->"/",2->"\\"})&

বেনামে ফাংশন। ইনপুট হিসাবে একটি স্ট্রিং নেয় এবং আউটপুট হিসাবে তার কোডটি উপস্থাপন করে একটি স্ট্রিং প্রদান করে। তুলনামূলকভাবে সহজ এনকোডিং স্কিম ব্যবহার করে।


0

পাইথ, 27 বাইট

@{.p"/|\||"x."AW
Ú/Ç\x94E\x18µð££

বেরিয়ে প্রতিস্থাপন \x94, \x18সংশ্লিষ্ট বাইট সঙ্গে।

এটি অনলাইনে চেষ্টা করুন

কিভাবে এটা কাজ করে

@                                      index into this list:
  .p"/|\||"                              permutations of /|\||
 {                                       deduplicate
                                       at index:
            ."AW\nÚ/Ç\x94E\x18µð££"      compressed string: EBAHIFDNSWKGOTLPMRU
           x                       Q     index in that of input (or -1 for Y)

পাইথ, 32 বাইট

কোনও হার্ড-কোডেড লুকিং টেবিল ব্যবহার না করে।

@o-xN\/xN\\{.p"/\|||"x-rG2"CJQVX

এটি অনলাইনে চেষ্টা করুন

কিভাবে এটা কাজ করে

@                                    index into this list:
            .p"/\|||"                  all permutations of /\|||
           {                           deduplicate
 o                                     sort by the following key for N in the list:
   xN\/                                  index of / in N
  -    xN\\                              … minus index of \ in N
                                     at index:
                       rG2             capitalized alphabet
                      -   "CJQVX"      minus CJQVX
                     x           Q     index in that of input

0

পাইথন 2, 115 111 বাইট

এটি একটি সাধারণ বাস্তবায়ন, তবে এটি কিছু গল্ফ ব্যবহার করতে পারে। পরামর্শ স্বাগত জানাই।

def f(c):s=["|"]*5;a=0xdb52384ebd9f46caa72899c838d50/25**(ord(c)-65)%25;s[a/5]="/";s[a%5]="\\";return''.join(s)

Ungolfed:

def f(c):
    s = ["|"] * 5
    d = ord(c) - 65
    # 0xdb52384ebd9f46caa72899c838d50 is our lookup number
    # 0040004100304231200043322110342300120124130214000304
    # in hexadecimal
    a = 0xdb52384ebd9f46caa72899c838d50 / 25**d % 25
    s[a/5] = "/"
    s[a%5] = "\\"
    return ''.join(s)

0

সি, 78 বাইট

i;f(x){for(i=5;i--;)putchar("|/\\|"["^\\ NXLFPH DBow{} gsyc q a"[x-65]>>i&3]);}

প্রদর্শিত সংস্করণটি সমস্ত মুদ্রণযোগ্য ASCII, 79 বাইট। দ্বিতীয়টি \\কোনও একক বাইট দ্বারা প্রতিস্থাপিত হতে পারে যা \0x5C: 0x1C (আপনার সংকলক এটি অনুমতি দেয়), 0x9 সি বা 0xডিসি হিসাবে একই শেষ 6 বিট রয়েছে।

ইনপুট অক্ষর যাদু স্ট্রিংটি মান থাকে তাকিয়ে করা হয় Aথেকে Y(অসমর্থিত অক্ষরের জন্য ফাঁকা জায়গা সমেত CJQVXলুকআপ টেবিল থেকে অক্ষর 2-বিট কোড যেখানে ওভারল্যাপিং পাঁচটি হিসেবে ব্যাখ্যা করা হয়।):

01 = /   10 = \    00 or 11 = |

পরীক্ষার প্রোগ্রামে মন্তব্য করা কোড

/*
magic string codes: bytes are 01XXXXXX
A     /|||\ 011110 ^
B     /||\| 011100 \\
D     |/||\ 001110 N 
E     /|\|| 011000 X
F     |/|\| 001100 L
G     ||/|\ 000110 F
H     /\||| 010000 P
I     |/\|| 001000 H
K     ||/\| 000100 D
L     |||/\ 000010 B
M     \/||| 101111 o
N     |\/|| 110111 w
O     ||\/| 111011 {
P     |||\/ 111101 }
R     \|/|| 100111 g
S     |\|/| 110011 s
T     ||\|/ 111001 y
U     \||/| 100011 c
W     |\||/ 110001 q
Y     \|||/ 100001 a

                                     ABBCDEFGHIJKLMNOPQRSTUVWXY*/
i;f(x){for(i=5;i--;)putchar("|/\\|"["^\\ NXLFPH DBow{} gsyc q a"[x-65]>>i&3]);}

j;
main(){
  j=getchar();
  f(j);
} 

0

রুবি, 159 বাইট

v=[1,2,3,4,7,8,9,13,14,19];w=v+v.map{|e|25+e};a="HEBAIFDKGLMRUYNSWOTP";b="\\/"
x=w[a.index($*[0][0])];g="|"*5;y=(x>25)?0:1;g[(x/5)%5]=b[y];g[x%5]=b[1-y];puts g

ব্যাখ্যা:

বিচ্যুত সূঁচগুলির অবস্থানগুলি 0..4 এ ম্যাপ করা হয় এবং বেস -5 নম্বর (2 অঙ্ক) হিসাবে ভাবা হয়। আ'লীগের জন্য, সংখ্যাগুলি "যেমন রয়েছে"; এমজেডের জন্য, সংখ্যাটিতে 25 যোগ করুন। মানচিত্রটি পরিবর্তনশীল aথেকে শুরু করে w

চিঠির সাথে সম্পর্কিত সংখ্যাটি দেওয়া, এর বেস -5 উপস্থাপনাটি ব্যবহার করুন: প্রথম সূঁচের জন্য 5s সংখ্যা, দ্বিতীয় সূঁচের জন্য 1s সংখ্যা এবং সূঁচের দিকনির্দেশের জন্য 25s সংখ্যাটি ব্যবহার করুন

একটি অক্ষরের পরিবর্তে পুরো স্ট্রিংটিকে এনকোড করার জন্য একটি প্রোগ্রামটি কিছুটা দীর্ঘ: 172 বাইট by

v=[1,2,3,4,7,8,9,13,14,19];w=v+v.map{|e|25+e};a="HEBAIFDKGLMRUYNSWOTP";b="\\/"
$*[0].each_char{|c|x=w[a.index(c)];g="|"*5;y=(x>25)?0:1;g[(x/5)%5]=b[y];g[x%5]=b[1-y];puts g}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.