লেভেনস্টাইন দূরত্ব পক্ষপাত


10

নামের সাথে কোনও ভাষায় একটি প্রোগ্রাম লিখুন Aযা একটি স্ট্রিং দেওয়া Sহলে, একটি ভিন্ন প্রোগ্রামিং ভাষার নাম আউটপুট করে B। এর দৈর্ঘ্য লেভেনস্টাইন দূরত্ব (আব্র। "এলডি") এর মধ্যে এবং Bসমান হতে হবে । প্রোগ্রামিং ল্যাঙ্গুয়েজ হিসাবে বিবেচনা করার জন্য অবশ্যই একটি এসোলেংস পৃষ্ঠা বা উইকিপিডিয়া পৃষ্ঠা থাকতে হবে।ASB

উদাহরণ:

(Suppose the program is coded in Python)
Input: Jython
Output: R
Input: Pyt4oq
Output: Go
Input: Rs7hon
Output: C++

এর মধ্যে এলডি Pythonএবং Jythonএক, তাই আউটপুটR

আপনার কেবলমাত্র অবধি একটি এলডি কভার করতে হবে 12। আপনি ধরে নিতে পারেন যে একটি এলডি 0কখনই ঘটবে না।

এটি , তাই বাইটের মধ্যে সংক্ষিপ্ততম প্রোগ্রামটি জিতে।

(এটি আমার প্রথম চ্যালেঞ্জ! প্রতিক্রিয়া প্রশংসা করা হয়)


লিডারবোর্ড


কেন 12? বড় নাম আছে কি ভাষা নেই?
কনর ও ব্রায়েন

@ CᴏɴᴏʀO'Bʀɪᴇɴ এটি ঠিক একটি যুক্তিসঙ্গত উপরের দিকে ঠিক বলে মনে হয়েছে।
সিডরাস

@ThomasKwa আমি বিশ্বাস করি Rএকটি প্রোগ্রামিং ভাষা ... এটি সহজে হতে পারত C, Dইত্যাদি
Seadrus

1
সুতরাং, আপনার অর্থ লেভেনস্টাইন দূরত্বের সমান দৈর্ঘ্যের একটি নাম ? প্রোগ্রামিং ল্যাঙ্গুয়েজ বলতে কী বোঝে? এটির একটি esolangs / উইকিপিডিয়া পৃষ্ঠা থাকা আবশ্যক?
lirtosiast

6
"প্যাটন" এবং "পাইথন" এর এলডি 2 নয়, 3
লিফ উইলার্টস

উত্তর:


3

ও, 107 বাইট

দূরত্ব গণনাটিকে আরও সহজ করার জন্য @ ইতিহাসের কাছ থেকে টিপটি ব্যবহার করা। কয়েকটি অক্ষর অপসারণ করতে একই প্রারম্ভিক বর্ণ সহ ভাষাও ব্যবহার করা হয়েছে

"pyrodecimal""hakespeare""tackstack""nowflake""nowball""nowman""onata""ADOL""taq""oT""R"""ie\'O<-1-{;}d'Soo

এখানে চেষ্টা করুন


6

পিএইচপি, 137 135

ত্রুটি প্রতিবেদন বন্ধ এবং পিএইচপি 5.4+ প্রয়োজন ires ইনপুটটি জিইটি ভেরিয়েবল a

<?=explode(~ß,~­ß¼Üß¼ÔÔßµž‰žß¬œž“žß¾Š‹¶‹ß¾‘“›¼ß«¶Ò½¾¬¶¼ß½Š“š˜Š’ßµž‰žŒœ–‹ß²ž‹—š’ž‹–œžß¾œ‹–‘¬œ–‹)[levenshtein(PHP,$_GET[a])-1];

Hexdump:

00000000: 3C 3F 3D 65 78 70 6C 6F - 64 65 28 7E DF 2C 7E AD |<?=explode(~ ,~ |
00000010: DF BC DC DF BC D4 D4 DF - B5 9E 89 9E DF AC 9C 9E |                |
00000020: 93 9E DF BE 8A 8B 90 B6 - 8B DF BE 8D 91 90 93 9B |                |
00000030: BC DF AB B6 D2 BD BE AC - B6 BC DF BD 8A 9D 9D 93 |                |
00000040: 9A 98 8A 92 DF B5 9E 89 - 9E 8C 9C 8D 96 8F 8B DF |                |
00000050: B2 9E 8B 97 9A 92 9E 8B - 96 9C 9E DF BE 9C 8B 96 |                |
00000060: 90 91 AC 9C 8D 96 8F 8B - 29 5B 6C 65 76 65 6E 73 |        )[levens|
00000070: 68 74 65 69 6E 28 50 48 - 50 2C 24 5F 47 45 54 5B |htein(PHP,$_GET[|
00000080: 61 5D 29 2D 31 5D 3B    -                         |a])-1];|
00000087;

পঠনযোগ্য সংস্করণ:

<?=explode(' ','R C# C++ Java Scala AutoIt ArnoldC TI-BASIC Bubblegum Javascript Mathematica ActionScript')[levenshtein(PHP,$_GET[a])-1];

6

সি, 183

main(s){char* a[12]={"R","C#","C++","Java","COBOL","Python","Clipper","VBScript","Smalltalk","Javascript","Mathematica","ActionScript"};printf(a[strlen(gets(&s))-!!strchr(&s,67)-1]);}

একটি বর্ণের নামের সাথে একটি ভাষা বাছাই করা আপনাকে দূরত্ব গণনার সাথে প্রতারণা করতে দেয়: "সি" থেকে যে কোনও স্ট্রিংয়ের দূরত্ব কেবল স্ট্রিংয়ের দৈর্ঘ্য, এতে "সি" অন্তর্ভুক্ত হলে বিয়োগ একটি হয়। আমি ভাবছি আর বা জে একই কৌশল ব্যবহার করে এটিকে পরাজিত করতে পারে।


কীভাবে gets(&s)ক্রাশ হয় না?
অ্যানাটলিগ

আমি নিশ্চিত নই, এটি অ্যানার্চি গল্ফ এবং আইডিয়োনে কাজ করে তবে স্পষ্টতই এটি ক্রিকেট নয়। আমি এটিআরজিভির জন্য বরাদ্দকৃত অব্যবহৃত মেমরিটি ব্যবহার করছি বলে আমি ধারণা করি।
হিস্টোক্র্যাট

5

পার্ল 5, 325 276

লেভেনস্টাইন দূরত্ব গণনা করতে কিছুটা পুনরাবৃত্তি ব্যবহার করে।

@X=(P,e,r,l);$y=@Y=split//,pop;sub L{my($n,$m)=@_;return$m,if!$n;return$n,if!$m;my$c=$X[$n]eq$Y[$m]?0:1;(sort{$a<=>$b}(L($m-1,$n)+1,L($m,$n-1)+1,L($m-1,$n-1)+$c))[0]}print qw(C C# C++ Java COBOL Python Clipper VBScript Smalltalk Javascript Mathematica ActionScript)[L(4,$y)-1]

আমার আসল সংস্করণটিতে দীর্ঘতর ইনপুটগুলির সাথে কিছু সমস্যা ছিল।
যতক্ষণ না বুঝেছিলাম পার্ল সাজান ফাংশন বর্ণমালা অনুসারে বাছাই করে।

অ্যারের পরিবর্তে সাবস্ট্রিংগুলি ব্যবহার করে এটি কিছুটা দীর্ঘতর হয়।

@L=qw(C C# C++ Java COBOL Python Clipper VBScript Smalltalk Javascript Mathematica ActionScript);sub l{my($s,$t)=@_;return length($t)if!$s;return length($s)if!$t;my($u,$v)=(substr($s,1),substr($t,1));substr($s,0,1)eq substr($t,0,1)?l($u,$v):(sort{$a<=>$b}(l($u,$v),l($s,$v),l($u,$t)))[0]+1}print$L[l('Perl',pop)-1]

পরীক্ষা

$ perl levenshtein.pl Php
C++

3

জে, 115 বাইট

{&((}.&'YABC'&.>|.i.4),(g'SMITHb'),'Clojure';(g'ComeFrom2'),((g=:}:;])'StackStacks'),<'CoffeeScript')@<:@(#-'J'&e.)

এটি হিস্টোক্র্যাট গণনার কৌশল ব্যবহার করছে (1-বর্ণের ভাষা ব্যবহার করে) এবং নীচের ভাষার তালিকা তৈরি করে:

┌─┬──┬───┬────┬─────┬──────┬───────┬────────┬─────────┬──────────┬───────────┬────────────┐
│C│BC│ABC│YABC│SMITH│SMITHb│Clojure│ComeFrom│ComeFrom2│StackStack│StackStacks│CoffeeScript│
└─┴──┴───┴────┴─────┴──────┴───────┴────────┴─────────┴──────────┴───────────┴────────────┘

উদাহরণ:

   {&((}.&'YABC'&.>|.i.4),(g'SMITHb'),'Clojure';(g'ComeFrom2'),((g=:}:;])'StackStacks'),<'CoffeeScript')@<:@(#-'J'&e.) 'C++'
┌───┐
│ABC│
└───┘
   {&((}.&'YABC'&.>|.i.4),(g'SMITHb'),'Clojure';(g'ComeFrom2'),((g=:}:;])'StackStacks'),<'CoffeeScript')@<:@(#-'J'&e.) 'ActionScript'
┌────────────┐
│CoffeeScript│
└────────────┘
   f=:{&((}.&'YABC'&.>|.i.4),(g'SMITHb'),'Clojure';(g'ComeFrom2'),((g=:}:;])'StackStacks'),<'CoffeeScript')@<:@(#-'J'&e.)
   f 'Jython'
┌─────┐
│SMITH│
└─────┘
   f 'Python'
┌──────┐
│SMITHb│
└──────┘
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.