যুদ্ধ শান্তি। স্বাধীনতা দাসত্ব। অজ্ঞতাই শক্তি


69

যেমন 1984 সালে জর্জ অরওয়েল লিখেছেন :

যুদ্ধ হচ্ছে শান্তি
স্বাধীনতা দাসত্ব
অজ্ঞতা শক্তি

একটি প্রোগ্রাম বা ফাংশন লিখুন যা অরওয়েলের উদ্ধৃতি থেকে ছয়টি প্রধান শব্দের মধ্যে একটি নেয় এবং এর সমকক্ষকে আউটপুট করে।

বিশেষ করে:

[input] -> [output]
war -> peace
peace -> war
freedom -> slavery
slavery -> freedom
ignorance -> strength
strength -> ignorance

অন্য কোনও ইনপুট / আউটপুট জোড়া লাগবে না।

আপনার মনে করা উচিত যে শব্দগুলি সর্বদা উপরের মতো সম্পূর্ণ ছোট হাতের অক্ষরে থাকে। অন্যথা, আপনি অনুমান হতে পারে শব্দ সর্বদা সম্পূর্ণরুপে বড় হাতের অক্ষরে করা হয়: WAR -> PEACE, PEACE -> WAR, ইত্যাদি

বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী।



2
@ ডেনিস হ্যাঁ হয় সব কিছুই ছোট হাতের বা সমস্ত কিছু বড় হাতের।
ক্যালভিনের শখ

3
যদি কেউ তাদের স্ট্রিংগুলি আরও সংকোচনের জন্য এটি ব্যবহার করতে পারে কিনা তা জানেন না (এটি পিপটিতে আমার স্কোরটির উন্নতি করতে পারে নি) তবে এই শব্দের ( w p f s i) এর প্রাথমিক বর্ণগুলি অন্য কোনও শব্দেই অন্য কোথাও খুঁজে পাওয়া যায় না। একটি উদ্ভট সম্পত্তি।
DLosc

13
এটি একটি ডাবলপ্লাসগুড চ্যালেঞ্জ
জোজোদমো

উত্তর:


58

05 এ বি 1 ই , 30 বাইট

05 এ বি 1 ই সিপি 1252 ব্যবহার করে ।

“ignorance¤í‡î—™šÔÃÒry“#DIk1^è

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

ব্যাখ্যা

সোজা এগিয়ে পদ্ধতির

  • স্ট্রিং পুশ করুন ignorance strength war peace freedom slavery
  • স্পেসে বিভক্ত করুন
  • তালিকায় ইনপুটটির সূচক পান
  • এক্সওআর সূচক 1 দিয়ে
  • সেই সূচকে তালিকায় উপাদানটি পান

42
সমস্ত শব্দের দৈর্ঘ্যের চেয়ে 14 বাইট কম। এমনকি এই ভাষা কি?
DJMcMayhem

65
> স্ট্রিংটিignorance strength war peace freedom slavery আমার মনে হচ্ছে আমি সেখানে প্রায় এক ডজন পদক্ষেপ মিস করছি!
বব


10
"অজ্ঞতা" বাদে বাকী শব্দগুলি কোথা থেকে এসেছে কেউ ব্যাখ্যা করতে পারে?
কারসিজেনিকেট

36
05 এ বি 1 ই শব্দের একটি অন্তর্নির্মিত অভিধান রয়েছে যা প্রতি 2 টি বাইট দ্বারা উপস্থাপিত হয়: github.com/Adriandmen/05AB1E/blob/master/d शब्दको.py
রবার্ট ফ্রেজার

48

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

s=>'freedom,,war,,strength,,slavery,peace,ignorance'.split`,`[s.charCodeAt(1)%9]

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

আমরা প্রতিটি শব্দের ২ য় অক্ষরের ASCII কোডের উপর ভিত্তি করে একটি ছোট সন্ধানের টেবিল ব্যবহার করি, এর প্রতিরূপের সূচকটি ফিরিয়ে আনছি।

Word      | 2nd char. | ASCII code | MOD 9
----------+-----------+------------+------
war       | a         | 97         | 7
peace     | e         | 101        | 2
freedom   | r         | 114        | 6
slavery   | l         | 108        | 0
ignorance | g         | 103        | 4
strength  | t         | 116        | 8

পার্শ্ব নোট হিসাবে, যদি মিক্সড war PEACE FREEDOM slavery IGNORANCE strengthকেসটি অনুমোদিত হয় তবে মডিউল 6 ব্যবহার করে নিখুঁত হ্যাশ হতে পারে।

পরীক্ষা


2
এটি একটি দুর্দান্ত পদ্ধতির। এটা কখনই ভাবতেন না।
কারসিজেনিকেট

খুব সুন্দর. বাকী
অংশগুলি

একটি বিভাজক ব্যবহার করে zএবং তারপরে atob8 টি বাইট সংরক্ষণ করে স্ট্রিংটি সংকোচন করে ?
ডাউনওয়েট

@ ডাউনগোট কি 32২২ range-এর সীমার বাইরে চরিত্রের জন্য প্রচুর পলায়নের দরকার হবে না?
আর্নল্ড

ব্যবহার করে atobআপনি একটি স্ট্রিং পান যা বেশিরভাগ বৈধ জাভাস্ক্রিপ্ট - অবশেষে আপনাকে কেবল `\` এবং সমাপনী উদ্ধৃতিটি এড়িয়ে চলতে হবে। এটি এই সাইটে পোস্ট করা কঠিন হতে পারে, তবে এটি উত্তরটি অকার্যকর করে না। স্মিসের পার্ল উত্তরটি দেখুন
edc65

32

জেলি , 24 বাইট

“Ñ=ƘḊ¹ƥ¹Ƙ⁷ṅ8cøGị»Ḳµiɠ^1ị

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

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

প্রথম, টোকেন

“Ñ=ƘḊ¹ƥ¹Ƙ⁷ṅ8cøGị»

স্ট্রিংটি তৈরি করতে জেলির অভিধানে সূচি

strength war peace freedom slavery ignorance

যা স্প্রিংগুলিতে স্ট্রিং অ্যারে উপার্জনের জন্য বিভক্ত হয়

["strength", "war", "peace", "freedom", "slavery", "ignorance"]

µ স্ট্রিং অ্যারেটিকে তার আর্গুমেন্ট হিসাবে একটি নতুন, মোনাডিক চেইন শুরু করে, এটি বর্তমান রিটার্ন মানও।

ɠএসটিডিআইএন থেকে ইনপুটগুলির একটি লাইন পড়ে এবং iতার পূর্ববর্তী রিটার্ন মান, অর্থাত, উত্পন্ন স্ট্রিং অ্যারের সূচকটি সন্ধান করে।

এখন, ^1সেই সূচকের বিটওয়াইজ এক্সওর এবং 1 নিবে । এমনকি সূচকের জন্য - মনে রাখবেন যে জেলি ইনডেক্স হয় 1 ভিত্তিক এবং মডুলার, তাই শক্তি সূচক আছে 1 এবং অজ্ঞতা সূচক আছে 6 / 0 - এই সূচক বৃদ্ধি; বিজোড় সূচকগুলির জন্য, এটি সেগুলি হ্রাস করে।

অবশেষে চেইনের যুক্তি থেকে সেই সূচীতে স্ট্রিংটি পুনরুদ্ধার করে।


16

গণিত, 84 বাইট

(x="war""peace")(y="freedom""slavery")(z="ignorance""strength")/#/.x->1/.y->1/.z->1&

ব্যাখ্যা

স্ট্রিং সহ আরও "গাণিতিক"! সংযুক্ত উত্তরের মতো এটিও এই সত্যের উপর ভিত্তি করে যে আপনি গাণিতিকায় স্ট্রিংগুলিকে "গুণ" করতে পারেন যা এগুলিকে মূল্যহীন (দুইটি স্বাক্ষরিত ভেরিয়েবলগুলি গুণিত করার অনুরূপ x*y) রেখে দেবে, তবে ম্যাথমেটিকা ​​একটি বিভাগে কারণ বাতিলকরণের মতো মৌলিক সরলকরণ প্রয়োগ করবে।

সুতরাং আমরা মধ্যে পণ্য হিসাবে তিন জোড়া মজুত করে শুরু x, y, zযথাক্রমে, এবং তাদের সব একসাথে গুন:

(x="war""peace")(y="freedom""slavery")(z="ignorance""strength")

এটি মূল্যায়ন করে

"freedom" "ignorance" "peace" "slavery" "strength" "war"

(ম্যাথমেটিকা ​​স্বয়ংক্রিয়ভাবে কারণগুলি সাজায়, তবে আমরা অর্ডারটি যত্ন করি না))

ম্যাথমেটিকা ​​কারণগুলি বাতিল করে দেওয়ার কারণে আমরা যে শব্দটি দিয়ে চাই না তা সরাতে আমরা ইনপুট দ্বারা এটি ভাগ করি .../#। উদাহরণস্বরূপ যদি ইনপুটটি "peace"আমাদের সাথে শেষ হত:

"freedom" "ignorance" "slavery" "strength" "war"

পরিশেষে, আমরা প্রতিটি দ্বারা substituting, জোড়া আমরা আগ্রহী নন, তাহলে পরিত্রাণ পেতে x, yএবং zসঙ্গে 1। আবার ম্যাথামেটিকার সরলকরণটিতে 1*aসর্বদা লিক্স থাকে a। এই অংশটি দিয়ে করা হয়:

/.x->1/.y->1/.z->1

খুব সুন্দর বিষয় হ'ল ম্যাথেমেটিকা ​​জানে যে গুণটি Orderlessতাই এটি দুটি কারণই বিবেচনা না করেই তারা পণ্য সংলগ্ন কিনা তা খুঁজে পাবে। কেবলমাত্র শব্দটি যা ইনপুটটির বিপরীতে রয়েছে সেগুলি আর পণ্যটির জুড়ি তৈরি হয় না, যাতে কোনওটি সরানো হয় না এবং একমাত্র আউটপুট হিসাবে থেকে যায়।


আঃ, এত ভালো! আমি সঙ্গে 7 বাইট দ্বারা হেরেছি WordList[][[<|"l"->14007,"t"->17083,"a"->25105,"r"->32106,"g"->33790,"e"->39048|>@#[[2]]]]&
গ্রেগ মার্টিন

@ গ্রেগমার্টিন ওহ, দুর্দান্ত WordList। ইনপুট হিসাবে অক্ষরের তালিকা নেওয়া এবং একটি স্ট্রিং ফিরিয়ে দেওয়া কিছুটা বিশ্রী মনে হলেও। ;) বলেছিল, আপনি আরও 4 টি বাইটের সাথে আরও ভাল করতে পারেন x[[7-Position[x={"war","slavery","ignorance","strength","freedom","peace"},#][[1,1]]]]&
মার্টিন এন্ডার

আমি আপনার মতামত আগ্রহী, কিন্তু আমার কাছে, এটি পিপি এবং সিজি-অনুমোদিত অনুমোদিত ডজি মনে হয় :)
গ্রেগ মার্টিন

এছাড়াও <|#->#2&~MapThread~{x={"war","slavery","ignorance","strength","fre‌edom","peace"},Reverse@x}|>94 বাইটের জন্য
গ্রেগ মার্টিন

13

ভিম, 60 বাইট

D3iwar freedom ignorance peace slavery strength <esc>2?<C-r>"
3wdwVp

এটি অনলাইন চেষ্টা করুন! পিছনে সামঞ্জস্যপূর্ণ ভি দোভাষী।

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

ব্যাখ্যা:

D                       " Delete this whole line
 3i...<esc>             " Insert the text three times
           2?           " Search backwards twice
             <C-r>"     " For the words we deleted
3w                      " Move three words forward
  dw                    " Delete a word
    V                   " Select this whole line
     p                  " And paste the word we deleted over it

10

সি (জিসিসি) , 120 107 বাইট

f(long*s){long r[2]={0};strcpy(r,s);s=*r>>40?*r>>56?"\n":"":"CE";*r^=*s;r[1]^=69;puts(r);}

সর্বোচ্চ পয়েন্টার আপত্তি! সামান্য এন্ডিয়ান মেশিন এবং -৪-বিট লম্বা দরকার।

কোডটিতে কয়েকটি অ-মুদ্রণযোগ্য রয়েছে, তবে অনুলিপি-পেস্ট করা এখনও কাজ করা উচিত।

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


8

পাইথন, 81 বাইট

l='war peace freedom slavery ignorance strength'.split()
lambda s:l[l.index(s)^1]

বা, একই দৈর্ঘ্য:

l='war slavery ignorance strength freedom peace'.split()
dict(zip(l,l[::-1])).get

ল্যাম্বার বাইরে কোনও পূর্ণ প্রোগ্রামের পরিবর্তে ল্যাম্বদা ব্যবহার করার সময় কি ভেরিয়েবল সংজ্ঞা অনুমোদিত?
শুক্রবার

1
@ এসএমএলস হ্যাঁ, এই মেটা আলোচনাটি দেখুন । মনে রাখবেন যে অন্যথায়, কেউ alচ্ছিক lযুক্তি হিসাবে পাচার করতে পারে ।
xnor

8

পার্ল 6 , 61 বাইট

অপ্রিন্টযোগ্য অক্ষরগুলি হিসাবে দেখানো হয়েছে (কারণ স্ট্যাকএক্সচেঞ্জ তাদের এড়িয়ে দেয়):

{first {s/^\w+<(\0*$//},["���ce","�������","���
����e"X~^$_]}

এখানে একটি xxdহেক্স্স ডাম্প রয়েছে:

00000000: 7b66 6972 7374 207b 732f 5e5c 772b 3c28  {first {s/^\w+<(
00000010: 5c30 2a24 2f2f 7d2c 5b22 0704 1363 6522  \0*$//},["...ce"
00000020: 2c22 151e 0413 011d 1422 2c22 1a13 1c0a  ,".......","....
00000030: 1c06 1a0b 6522 587e 5e24 5f5d 7d0a       ....e"X~^$_]}.

প্রসারিত সংস্করণ (অরক্ষিত অক্ষরগুলি পালানোর ক্রমগুলির সাথে প্রতিস্থাপন করা হয়েছে, এবং সাদা স্থান এবং মন্তব্যগুলি যুক্ত করা হয়েছে):

{    # A Lambda.
    first {                   # Return first element which:
        s/ ^ \w+ <( \0* $ //  #   after stripping \0 has only word characters left.
    },
    [                                                  # The array to search:
        "\x[7]\x[4]\x[13]ce",                          #   "war" xor "peace"
        "\x[15]\x[1e]\x[4]\x[13]\x[1]\x[1d]\x[14]",    #   "freedom" xor "slavery"
        "\x[1a]\x[13]\x[1c]\n\x[1c]\x[6]\x[1a]\x[b]e"  #   "ignorance" xor "strength"
        X~^ $_                                         #   each xor'ed with the input.
    ]
}

8

বাশ , 100 87 86 78 বাইট

a=peace;e=war;r=slavery;l=freedom;g=strength;t=ignorance;x=${1:1:1};echo ${!x}

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

প্রতিটি শব্দের ২ য় অক্ষর সেই শব্দটিকে স্বতন্ত্রভাবে চিহ্নিত করে, তাই আমি সেই অক্ষরটি পরিবর্তনশীল নাম হিসাবে ব্যবহার করি; সেই ভেরিয়েবলের মান হ'ল সংশ্লিষ্ট শব্দটি।

উদাহরণস্বরূপ, এর 2nd চিঠি peaceহয় e, এবং শব্দ সংশ্লিষ্ট peaceহয় war, তাই আমি সেট e=war

একটি ইনপুট স্ট্রিং দেওয়া, সেই স্ট্রিংয়ের ২ য় অক্ষরটি ব্যাশের পরোক্ষ প্যারামিটার সম্প্রসারণ ব্যবহার করে পছন্দসই অনুরূপ শব্দটি টানতে একটি পরিবর্তনশীল নাম হিসাবে ব্যবহৃত হয়।


8

টিআই-বেসিক, 103 84 77 বাইট

ওয়ান-লাইনারে হ্রাস করা প্রচুর বাইট সংরক্ষণ করেছে! হাহাহা, উক্তিটি কতটা হাস্যকর ছিল ...

inString("EALRGT",sub(Ans,2,1
sub("WAR  PEACE FREEDOMSLAVERY STRENGTH IGNORANCE ",9Ans+1,4+Ans

7

পার্ল , 63 বাইট

62 বাইট + -pপতাকা।

$_=(slavery,freedom,ignorance,strength,war,peace)[(ord)%6+/h/]

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

ordইনপুট শব্দের প্রথম অক্ষরের চর কোডটি প্রদান করে।
এর পরে %6, আমাদের রয়েছে:

- স্বাধীনতা => অর্ড = 102 =>% 6 = 0  
- দাসত্ব => অর্ড = 115 =>% 6 = 1  
- অজ্ঞতা => অর্ড = 105 =>% 6 = 3  
- শক্তি => অর্ড = 115 =>% 6 = 1  
- যুদ্ধ => অর্ড = 119 =>% 6 = 5  
- শান্তি => অর্ড = 112 =>% 6 = 4  

সুতরাং আমরা আছে slaveryএবং strengthউভয় ফিরে 1 (যেহেতু তারা উভয় একই অক্ষর দিয়ে শুরু করতে), এবং কেউ অত: পর 2. ফেরার আমরা যোগ 1জন্য strength(এটি শুধুমাত্র শব্দ মেলে হবে /h/), এবং আমরা প্রতিটি শব্দের 0 থেকে একটি সূচক ম্যাপ আছে 5।


6

আর, 86 87 92 বাইট

একটি নামহীন ফাংশন এবং পরিবর্তিত gsubকরা subকয়েক বাইট জন্য। grepযা 3 স্ট্রিং নির্ধারণ করে ব্যবহার করা হয় এবং ইনপুট সঙ্গে যে স্ট্রিং থেকে সরিয়ে ফেলা হয় sub

function(v)sub(v,'',(l=c("warpeace","freedomslavery","ignorancestrength"))[grep(v,l)])

5

পিএইচপি, 70 বাইট

<?=[ignorance,peace,slavery,strength,freedom,war][md5("^$argv[1]")%7];

5

বেফুঞ্জ, 89 88 বাইট

<>_00g1v2+%7~%2~"slavery"0"war"0"freedom"0"ignorance"0"strength"0"peace"
 |p00:-<
@>:#,_

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

ব্যাখ্যা

কার্যকরকরণের পথগুলির সাথে উত্স কোড হাইলাইট করা

*আমরা সমস্ত সম্ভাব্য আউটপুট স্ট্রিংগুলি স্ট্যাকের উপরে ঠেলা দিয়ে শুরু করি, নাল টার্মিনেটেড। এই ক্রমটি ডান থেকে বামে কার্যকর করা হয় যাতে মানগুলি বিপরীত দিকে ঠেলে দেওয়া হয়, কারণ শেষ পর্যন্ত আউটপুট করার সময় অক্ষরগুলির প্রয়োজন হবে।
*তারপরে আমরা স্ট্ডিনের প্রথম দুটি অক্ষর পড়ি, যা ইনপুট স্ট্রিংটি সনাক্ত করতে আমাদের কেবল প্রয়োজন। আমরা যদি প্রথম বর্ণের মোড 2 এর ASCII মান গ্রহণ করি তবে দ্বিতীয় বর্ণের 7 তম মডেলটি আমরা 2 থেকে 7 এর পরিসরে একটি অনন্য নম্বর পাই।

Input         ASCII      %2 %7   Sum
[fr]eedom     102 114    0  2    2
[pe]ace       112 101    0  3    3
[sl]avery     115 108    1  3    4
[st]rength    115 116    1  4    5
[ig]norance   105 103    1  5    6
[wa]r         119 97     1  6    7

*এই নম্বরটি স্ট্যাকের স্ট্রিং তালিকায় এক ধরণের সূচক হিসাবে ব্যবহার করা যেতে পারে। আমরা পুনরাবৃত্তভাবে সূচক হ্রাস করি (2 দ্বারা প্রথমবার) এবং প্রতিটি পুনরাবৃত্তির জন্য আমরা ক্রমটি দিয়ে স্ট্যাক থেকে একটি স্ট্রিং সাফ করি >_
*একবার সূচক শূন্যে পৌঁছে গেলে, আমরা স্ট্যাকের শীর্ষে সঠিক আউটপুট স্ট্রিংটি রেখে আসি, সুতরাং আমরা স্ট্যাডআউটে ফলাফল লিখতে একটি সাধারণ স্ট্রিং আউটপুট ক্রম ব্যবহার করি।


2
আমি এখানে :-<এবং @>:#"
স্মাইলি


5

সি, 93

@ আর্নৌল্ডের উত্তর সিতে বন্টিত হয়েছে

#define F(w)(char*[]){"freedom",0,"war",0,"strength",0,"slavery","peace","ignorance"}[w[1]%9]

4

সি (জিসিসি) , 113 108 বাইট

f(char*s){char*t="5WAR\0+PEACE\09FREEDOM\0'SLAVERY\0;IGNORANCE\0%STRENGTH";while(strcmp(s,++t));puts(t+*--t-47);}

\0স্কোর করার উদ্দেশ্যে সমস্ত দৃষ্টান্ত প্রকৃত NUL বাইট দ্বারা প্রতিস্থাপন করা যেতে পারে।

t+*--t-47অপরিবর্তিত আচরণ; এটি অন্য সংকলকগুলির সাথে / কাজ করবে না।

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


4

জাভাস্ক্রিপ্ট (ES6), 71 78

আরনাউল্ডের উত্তরের চেয়ে অনেক বেশি বিরক্তিকর, তবে খুব ছোট।

এখন আমি সাথে এনকোডিং যুক্ত করেছি btoa। এনকোডযুক্ত স্ট্রিংয়ে 4 বাইট রয়েছে যা আমি এই সাইটে পোস্ট করতে পারি না, যদিও এটি জাভাস্ক্রিপ্ট স্ট্রিংয়ে বৈধ অক্ষর। সুতরাং আমি ফর্মটিতে একটি হেক্স পলায়ন ব্যবহার করেছি \xHH। এই পালানো প্রত্যেকেরই 1 টি বাইট হিসাবে গণনা করা হয়।

এনকোডড স্ট্রিংটি হল strength0ignorance0peace0war0slavery0freedom

x=>(w=btoa`²ÚÞ\x9e\x0baÒ('¢¶§qí)y§\x1eÓ\x06«ÒÉZ½êòÑúÞyÚ&`.split(0))[w.indexOf(x)^1]

এটি একটি 82 এবং কেস সংবেদনশীল

x=>',,strength,,slavery,war,,,ignorance,peace,freedom'.split`,`[parseInt(x,36)%15]

পরীক্ষা

F=
x=>(w=btoa`²ÚÞ\x9e\x0baÒ('¢¶§qí)y§\x1eÓ\x06«ÒÉZ½êòÑúÞyÚ&`.split(0))[w.indexOf(x)^1]

;['freedom','slavery','war','peace','ignorance','strength']
.forEach(w=>console.log(w + ' -> ' + F(w)))


3

সিজেম, 52 (কেবলমাত্র ASCII)

"/.|Mv
DO'y    EK{ {:nBct'Pt}d4sE"144b26b'af+'j/_ra#1^=

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

দ্রষ্টব্য: স্থান দেখানো জিনিসগুলি ট্যাব অক্ষর ("EK {" এর আগে এবং একটি)

ব্যাখ্যা:

বেস রূপান্তরটি ব্যবহার করে "+" অবধি অংশটি "স্লেভারিজফ্রেডজওয়ারজপিজিজেনিয়েন্সজাস্ট্রেন্থ" স্ট্রিংকে সঙ্কোচিত করছে:
স্ট্রিং (চরিত্রের কোডগুলির অ্যারে হিসাবে বিবেচিত) → (বেস 144) সংখ্যা → (বেস 26) সংখ্যার অ্যারে each (প্রতিটিটিতে 'a' যোগ করছে সংখ্যা) স্ট্রিং

'j/    split around 'j' characters
_      duplicate the resulting word array
ra     read the input and wrap in array
#      find the index of the input in the word array
1^     XOR with 1
=      get the word at the new index

3

> <> (ফিশ), 84 78 বাইট

0i~ia%.
v'raw'
>ol?!;
^'htgnerts'
^'yrevals'

^'ecnarongi'
^'ecaep'
^'modeerf'

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

আমরা উপরের বাম থেকে সাঁতার শুরু করি, ডানদিকে যাচ্ছি। প্রথমে আমরা স্ট্যাকটি একটি 0 দিয়ে লোড করি তারপরে আমরা ইনপুট ( i) এর প্রথম অক্ষরটি পড়ি ( এটি বাতিল করুন ~), দ্বিতীয় বর্ণটি ( i) পড়ি এবং এর ASCII মানটি 10 ​​( a%) হ্রাস করি । এই, E, R, এল, জি ও টি 7, 1, 4, 8, 3 মানচিত্র, এবং 6, যথাক্রমে-চল এই নম্বরে কল এন .স্ট্যাক-এন থেকে দুটি মানের পপ এবং 0-এবং জাম্প লাইন এন, অক্ষর 0

লাফানোর পরে, নির্দেশাবলী কার্যকর করার আগে মাছটি একটি টিক এগিয়ে যায়, তাই এটি প্রথম চরিত্রটিকে উপেক্ষা করে লাইন এন জুড়ে সাঁতার কাটে, যা সংশ্লিষ্ট শব্দটি স্ট্যাকের উপর চাপিয়ে দেয়। শেষ পর্যন্ত আমরা লাইন 2 এ যাই, যা পুরো স্ট্যাকটি আউটপুট করে এবং প্রস্থান করে।

  • আমি আগে ব্যবহৃত শীতল কোডের স্ব-পরিবর্তনের পরিবর্তে একটি জাম্প ব্যবহার করে ছয়টি বাইট সংরক্ষণ করেছি। আচ্ছা ভালো.

3

জাভাস্ক্রিপ্ট, 78 বাইট

w=>(a="war slavery ignorance strength freedom peace".split` `)[5-a.indexOf(w)]

এটি আমার পাইথন উত্তরের এক ধরণের বন্দর । আমরা শব্দগুলিকে একটি স্ট্রিংয়ে সংরক্ষণ করি যেখানে প্রতিটি তার সমকক্ষের বিপরীত অবস্থানে থাকে। আমরা প্রদত্ত শব্দের সূচীটি খুঁজে wপাই এবং ফলাফলটি ফিরে পেতে শেষ থেকে সেই সূচকটি পাই।

পরীক্ষার স্নিপেট:

f = w=>(a="war slavery ignorance strength freedom peace".split` `)[5-a.indexOf(w)]

console.log(f("peace"))
console.log(f("ignorance"))
console.log(f("war"))


2

পরী / জিপি, 86 বাইট

পরী / জিপি একটি ইন্টারেক্টিভ ইন্টারপ্রেটার, আউটপুট জন্য আমাদের "প্রিন্ট" -সিএমডি প্রয়োজন হয় না; যাইহোক, চেষ্টা করুন_অনলাইন-ইউটিলিটিটির জন্য "মুদ্রণ" -সিএমডি দরকার তাই আমি এটিকে "পাদলেখ" থেকে পৃথক করি।
আমরা একটি "অবজেক্ট-ফাংশন" সংজ্ঞায়িত করি (ও চিঠিটি আমাকে অরওয়েল-ফাংশনটির সুন্দর স্মরণ করিয়ে দেয় ... ;-)):

x.O=s=[war,freedom,ignorance,strength,slavery,peace];for(k=1,6,if(x==s[k],i=7-k));s[i]

তার পরে, কল

print(war.O)   \\ input to Pari/GP with the O-rwell-member of "war"
       peace   \\ output by Pari/GP

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

(দ্রষ্টব্য, পরি / জিপি-তে এখানে প্রদত্ত টোকেনগুলি স্ট্রিং নয় তবে আইনী ভেরিয়েবল-নাম রয়েছে! সেই ভেরিয়েবলগুলির কোনওরূপে নির্ধারিত কোনও মান থাকতে হবে না)


2

স্ট্যাকড, 70 বাইট

@x'war
strength
freedom
slavery
ignorance
peace'LF split:x index\rev\#

এখানে চেষ্টা করুন! স্ট্যাকের উপর ইনপুট নেয় এবং স্ট্যাকের আউটপুট ছেড়ে দেয়। উদাহরণ স্বরূপ:

'war'

@x'war
strength
freedom
slavery
ignorance
peace'LF split:x index\rev\#

out

এই কোডটি মোটামুটি স্ব-বর্ণনামূলক। সমস্ত পরীক্ষার কেস চালানোর জন্য সামান্য সংশোধিত:

('war' 'slavery' 'ignorance')
{x:'war
strength
freedom
slavery
ignorance
peace'LF split:x index\rev\#x\,}"!
disp

1
কি করে 'LF?
ডাউনওয়েট

1
@ ডাওনগোট ওয়েল, @xএকটি ভেরিয়েবল সেট করে, '...'একটি স্ট্রিং এবং LFলাইনফিড ভেরিয়েবল
কনর ও'ব্রায়ান

1
আহ আমি দেখছি, তাই ফাংশন নামের আগে ফাংশন যুক্তি আসে?
ডাউনওয়েট

1
পছন্দ করুন স্ট্যাকড হ'ল, ভাল, স্ট্যাক-ভিত্তিক।
কনর ও'ব্রায়ান

1
হ্যাঁ এ জাতীয় স্পষ্ট সত্যটি উপলব্ধি না করার জন্য আমি এখন বোবা বোধ করছি: |
ডাউনগোট

2

জल्फ, 35 বাইট

.γG"ΞΠΞ¦ΞpΞsΞΈΞ3I"-5 iγ

অনেকগুলি অপ্রিন্টেবল রয়েছে। এখানে একটি হ্যাক্সডাম্প, যদিও এটি খুব ভাল কিছু করতে পারে না:

00000000: 2ece b347 22ce 9e07 cea0 c28e ce9e 07c2  ...G"...........
00000010: 8ac2 a6ce 9e06 c28e 70ce 9e07 73c2 8fce  ........p...s...
00000020: 9e06 ce88 c280 ce9e 0133 4922 052d 3520  .........3I".-5
00000030: 69ce b3                                  i..

এখানে একটি অনলাইন লিঙ্ক।

মূলত, কোডটি এর মতো দেখাচ্ছে:

.γG"..."♣-5 iγ
  G"..."♣        split uncompressed string on spaces
 γ               set gamma to this
            iγ   index of the input in gamma
.γ       -5      and get 5 - this from gamma

2

আসলে , 56 বাইট

' "war peace freedom slavery ignorance strength"s;)í1^@E

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

দুর্ভাগ্যক্রমে, কোনও সংক্ষেপণ বিল্টিনগুলি ছাড়াই, স্ট্রিংটি সংকোচনে না করা এবং ম্যানুয়ালি এটি সংক্ষেপিত করা কম।

ব্যাখ্যা:

' "war peace freedom slavery ignorance strength"s;)í1^@E
' "war peace freedom slavery ignorance strength"s         split the string on spaces
                                                 ;)       make a copy, push it to the bottom of the stack
                                                   í      index of input in list
                                                    1^    XOR with 1
                                                      @E  that element in the list

2

হাস্কেল, 104 111 বাইট

data O=WAR|FREEDOM|IGNORANCE|PEACE|SLAVERY|STRENGTH deriving(Show,Enum)
f s=toEnum$mod(3+fromEnum s)6::O

ধারণা:

  • কীওয়ার্ডগুলি এমনভাবে গণনা করুন যে তাদের প্রতিরূপটি 3 অবস্থান দূরে
  • কীওয়ার্ডটি ধরুন, এর দ্বারা অবস্থান নিন fromEnum, 3 টি পদক্ষেপ ডানে (মডিউলাস 6) সরান এবং কীওয়ার্ডটিতে ফিরে রূপান্তর করুন
  • ::Oপ্রয়োজন কারণ টাইপ অনুমান কিছু সমস্যা রয়েছে। fস্বাক্ষর প্রদান f :: O -> Oএকই প্রভাব ফেলতে পারে তবে এটি সংক্ষিপ্ত নয়।

সম্পাদনা:

প্রতিস্থাপিত

f s=toEnum$mod(3+fromEnum s)6

দ্বারা

f=toEnum.(`mod`6).(+3).fromEnum

@ লাইকনি ধন্যবাদ।


2
এর জন্য পয়েন্ট-পূর্ণ স্বরলিপি ব্যবহার fকরা ছোট:f s=toEnum$mod(3+fromEnum s)6
লাইকনি

2

ডায়ালগ এপিএল , 66 বাইট

এর মধ্যে যে কোনও একটি:

'slavery' 'freedom' 'ignorance' 'strength' 'war' 'peace'⊃⍨6|⎕UCS⊃⍞এই পদ্ধতিটি ব্যবহার করে ( ⎕IO←0যা অনেক সিস্টেমে ডিফল্ট থাকে)।

'strength' 'freedom' 'war' 'peace' 'slavery' 'ignorance'(⍳⊃(⌽⊣))⊂⍞ একটি অনুসন্ধান করে, তারপরে বিপরীত তালিকা থেকে সংশ্লিষ্ট উপাদানটি বেছে নেয়।


2

কিবাসিক, 138 99 বাইট

D$="ignorancefreedom  peace    strength slavery  war      ":INPUT A$:?MID$(D$+D$,INSTR(D$,A$)+27,9)

D$মন্ত্রের বাম দিক থেকে সমস্ত শব্দ সঞ্চয় করে, তারপরে ডান দিকের সমস্ত শব্দ। প্রতিটি শব্দ স্পেস দিয়ে প্যাড করে প্রতি শব্দ প্রতি ঠিক 9 টি অক্ষর। D$তারপরে নিজেই সংযুক্ত হয়ে যায়।

তারপরে instrব্যবহারকারীর দ্বারা প্রবেশ করা শব্দের সূচীটি অনুসন্ধান করতে ব্যবহৃত হয়। মন্ত্রের অন্যান্য অংশটি সর্বদা ঠিক 9 * 3 পজিশনে আরও স্ট্রিংয়ে সঞ্চিত থাকে, সুতরাং আমরা 9 ​​টি অক্ষর নিয়ে সেই অবস্থান থেকে শুরু করে একটি স্ট্রিং মুদ্রণ করি।


2

স্মাইলব্যাসিক, 92 বাইট

A$="PEACE
E$="WAR
R$="SLAVERY
L$="FREEDOM
G$="STRENGTH
T$="IGNORANCE
INPUT I$?VAR(I$[1]+"$")

2

পাইথন , 80 বাইট

একরকম আউটগল্ফড এক্সনর!

এটি একটি নামবিহীন ল্যাম্বদা ফাংশন, যা ফলাফলটি দেয়।

lambda w,a="war slavery ignorance strength freedom peace".split():a[~a.index(w)]

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

শব্দের তালিকাটি এমনভাবে সাজানো হয়েছে যে এটি প্রতিটি তার সমকক্ষের বিপরীত অবস্থানে থাকে। শব্দটি দেওয়া হয়েছে w, আমরা শব্দের তালিকায় এর সূচকটি পাই এবং তারপরে এটি বিটওয়াইস না ( ~)। এটি সমস্ত বিটগুলি ফ্লিপ করে, যা গণনা n => -n-1। পাইথনের নেতিবাচক সূচকের কারণে তালিকার বিপরীত সূচকটি পাওয়া যায়।

এক ধরণের অনিচ্ছাকৃত বোনাস হিসাবে, আপনি দ্বিতীয় যুক্তি হিসাবে এই ফাংশনটিতে বিরোধীদের কোনও শব্দের তালিকাটি পাস করতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.