1, 2, 3, 4, 5, 6, 7, 8, এবং 9 কে "এক", "দুই", "তিন" ইত্যাদি রূপান্তর করুন etc


47

বিজয়ী: অধ্যাপকফিশের বাশ জবাব ! পুরো 9 বাইট! কি দারুন!

আপনি আপনার উত্তর জমা দিতে চালিয়ে যেতে পারেন, তবে আপনি আর জিততে পারবেন না। উত্তর পোস্টের জন্য মূল পোস্ট রাখা হয়েছে:


আপনার লক্ষ্যটি হ'ল 1-9 এর মধ্যে একটি সম্পূর্ণ সংখ্যাটিকে প্রতিনিধিত্ব করে এমন শব্দে রূপান্তর করে।

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

  • এই প্রতিযোগীতার শেষ হয়েছে জুন 27th, 2014 (পোস্ট করা থেকে 7 দিন) উপর।
  • এটি একটি , তাই সংক্ষিপ্ততম কোডটি জয়ী

2
পেছনের সাদা স্থান (যেমন one ) গ্রহণযোগ্য?
grc

1
@grc হ্যাঁ, যতক্ষণ না প্রোগ্রামটি শব্দটি আউটপুট করে।
জন

1
আপনার নির্দিষ্ট করা উচিত যে কেবলমাত্র প্রদত্ত নম্বর মুদ্রিত হতে পারে এবং অন্যান্য সংখ্যাগুলি নয়।
পিন্না_বে

1
@ পিন্না_বি উদাহরণস্বরূপ, যদি আমি ইনপুট করি তবে আপনি প্রযুক্তিগতভাবে আউটপুট সরিয়ে নিলেও আপনি 3আউটপুট দিতে পারবেন না । একইভাবে, আপনি আউটপুট ইত্যাদি করতে পারবেন নাone two three four five six seven eight ninethreethree seven
জন

1
এই প্রশ্নটি বেশ চমৎকার ছিল। তবে আমি তারিখের সীমা যুক্ত করা পছন্দ করি না। বিশেষত, তারিখ সীমাটি limit দিন আগে নয়, তারিখের সীমা থেকে ঠিক আগে যুক্ত করা হয়েছিল।
নিকোলাস বারবুলেসকো

উত্তর:


19

বাশ (বিএসডিগেম সহ), ৯

number -l

স্ট্যান্ডার্ড ইনপুট থেকে পড়া।

আমি জানি না কেন এর জন্য ইউটিলিটি রয়েছে তবে যা কিছু হোক।


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

@ পলড্রাপার আমিও করি না I আমি এটিকে গুরুতর উত্তর হিসাবে পোস্ট করি নি, আমি মনে করি অন্য উত্তরগুলির মধ্যে একটি গ্রহণযোগ্যতা পাবে

5
এটি কি স্ট্যান্ডার্ড লুফোল নয়?
জাস্টিন

2
হ্যাঁ, এটি মূলতঃ যদিও বেশিরভাগ জিনিসই বাশের বাইরের উপযোগিতা, তবে আমি বিএসডিগেমস প্যাকেজটিকে খুব অনুমোদিত কিছু হিসাবে গণনা করব না (গ্রেপ, উইজেট, কোর্টিলস, সেড, বিসি ...) এর বিপরীতে।

132

পাইথন 2, 64

print' ottffssennwhoiieiieoruvxvgn  ere ehe  e   nt'[input()::9]

কিছু অতিরিক্ত শ্বেত স্পেসের সাথে স্ট্রিংটি দেখতে এ রকম হয় (উল্লম্বভাবে পড়ার চেষ্টা করুন):

o t t f f s s e n
n w h o i i e i i
e o r u v x v g n
    e r e   e h e 
    e       n t

নীচের মন্তব্যে বর্ণিত হিসাবে, [input()::9]প্রদত্ত সূচকে শুরু হয় এবং প্রতিটি নবম পরবর্তী চরিত্র নির্বাচন করে।


9
ওহ, ছিঃ ছিঃ সম্ভবত এটি দেখানো মূল্যবান যে এটি অজগর 2।
আন্ডারগ্রাউন্ডোমোনাইল

3
দয়া করে ব্যাখ্যা! :)
ক্রিস্টোফার ওহলসন

6
@ ক্রিস্টোফার অলসন input()::9হ'ল input()স্ট্রিংয়ের শেষ থেকে শুরু করে ধাপে স্ট্রিংয়ের শেষে 9, যেমন 1,10,19,28,37বা 3,12,21,30,39ঠিক ঠিক সেই সূচক যেখানে সম্পর্কিত শব্দের জন্য বর্ণগুলি পাওয়া যায়।
মার্টিন ইন্ডার

1
@ এম.বাট্টনার ধন্যবাদ! ওটা সুন্দর.
ক্রিস্টোফার ওহলসন

6
এটি কি রেল-বেড়ার সাইফারের মতো কিছু নয়? (উপায় দ্বারা একটি ঝরঝরে সমাধানের জন্য +1।)
লু

18

কমন লিস্প - 22 বাইট

এখানে একটি সাধারণ (কেবলমাত্র দশ-দশকের জন্য নয়) রয়েছে:

(format nil"~R"(read))

ওহ, আপনি অর্ডিনাল চান (প্রথম, দ্বিতীয়, ... তিনশতম ...)? ঠিক আছে!

(format nil"~:R"(read))

10
এটি কি স্ট্যান্ডার্ড ফাঁক নয়?
seequ

2
লুফোল কী অর্থে? এটি হাইপারস্পেকে
filcab

10
: এটি হিসাবে meta.codegolf.stackexchange.com/a/1078/20356
seequ

3
এটি স্ট্যান্ডার্ড লুফোল হোক বা না হোক, আমি এখানে পোস্ট করতে এসেছি। +1 :)
জোশুয়া টেলর

5
@ দ্যরে এই উত্তরের মন্তব্যগুলি দেখে, আমি মনে করি না যে এটি একটি ফাঁকফোকর বলে দৃ community় সম্প্রদায়ের sensকমত্য রয়েছে। আমার অনুভূতি হ'ল প্রশ্নগুলি স্পষ্টভাবে এই ধরণের বিল্ট ফাংশনটি ব্যবহার করতে না পারলে তাদের স্পষ্টভাবে নিষিদ্ধ করা দরকার।
ডিজিটাল ট্রমা

16

বেস 51

তাই আমি আমার দ্বিতীয় ধারণাটি এবং অন্যদের থেকে কিছু সহায়তা ব্যবহার করে অন্য একটি তৈরি করেছি:

set one two three four five six seven eight nine

$X

যেখানে 'এক্স' আপনি চান এমন নম্বর number


বেস 48 (67)

67 \nলাইন বিরতি সঙ্গে

এটি সম্পূর্ণরূপে গণনা করা হয়েছে কিনা তা সম্পর্কে আমি নিশ্চিত নই, কারণ এটি কোনও ফাইল থেকে পড়ে, কিন্তু:

sed -n Xp a

"এক্স" হ'ল ইনপুট এবং কোথায় aএকটি ফাইল রয়েছে:

one
two
three
four
five
six
seven
eight
nine

ফাইলটি 36 টি অক্ষর, এবং বাশ কমান্ড 13।

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

ফাইলটির প্রতিটি লাইন 1 অনুসারে শুরু হয়, সুতরাং 1 'র সাথে 1' লাইন ',' 2 'তে 2 য়' লাইন 'রয়েছে। কমান্ডটি sed -n 'Xp' aবলে, "দয়া করে ফাইলটি 'এ' ফাইলের এক্স 'লাইনে কী তালিকাবদ্ধ রয়েছে তা মুদ্রণ sedকরা একটি ইউনিক্স স্ট্রিম সম্পাদক। -nমানে নিঃশব্দ থাকুন, বা কেবলমাত্র সমস্ত কিছু উপেক্ষা করুন। Xpমানে 'এক্স' লাইনে কী রয়েছে তা মুদ্রণ করুন।


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

2
আপনি লাইনফিডগুলি গণনা করেননি a
ডেনিস

1
আগের তুলনায় একটি বাইট কম, কমান্ড-লাইন আর্গুমেন্ট গ্রহণ করে এবং অতিরিক্ত ফাইলের প্রয়োজন হয় না: পেস্টবিন.com / qdbXKQGP বাশ অনুপস্থিত হেরেডোক ডিলিমিটার সম্পর্কে অভিযোগ করবে, তবে এটি ড্যাশ এবং জেডশির সাথে জরিমানা চলবে।
ডেনিস

1
@ ডেনিস ওহ শীতল আমি এটি পছন্দ করি। আমি কি এখন আপনার উত্তর দিয়ে আমার উত্তর সম্পাদনা করব? দুঃখিত, কোড গল্ফে নতুন।
এরিক Lagergren

1
আপনি 'উদ্ধৃতি বাদ দিতে পারেন । আপনি বাহ্যিক ফাইলের পরিবর্তে এখানে স্ট্রিং ব্যবহার করে দেখতে পারেন। তবে আপনার ফাইলটিতে লাইন ব্রেকগুলি সত্যিই গণনা করা উচিত।
ডিজিটাল ট্রমা

16

সি # - 127 (86/46)

আপনি যদি কেবল এক্সিকিউটেবল অংশ নেন ...

Console.Write(((HourOfDay)Console.Read()-48));

এবং যদি HourOfDayসিস্টেম নেমস্পেসের অংশ হত তবে আপনার 46 টি অক্ষর প্রয়োজন। দুর্ভাগ্যক্রমে এটি বসে System.DirectoryServices.ActiveDirectoryযার ফলে এটি 86 করে ... অন্য শব্দটি এটি লুণ্ঠন করে।

কমান্ডলাইন (127 অক্ষর) থেকে এটি সংকলনযোগ্য এবং চলমান:

using System;class P{static void Main(){Console.Write((System.DirectoryServices.ActiveDirectory.HourOfDay)Console.Read()-48);}}

যদি cg2.cs নামক কোনও ফাইলে সংরক্ষণ করা হয়

csc cg2.cs /r:System.DirectoryServices.dll  && cg2

কিভাবে কাজ করে?

HourOfDay এনাম টাইপ তাই আমরা ম্যাজিক কনস্ট্যান্টের পরিবর্তে নাম ব্যবহার করতে পারি। এনাম টাইপগুলির একটি টোস্ট্রিং () বাস্তবায়ন থাকে যা আপনাকে মানটির নাম দেয় । আপনি একটি এনামের জন্য একটি int কাস্ট করতে পারেন। কনসোল.আরড () পূর্ণসংখ্যা হিসাবে উপস্থাপিত ইনপুট স্ট্রিমের একটি অক্ষর পড়ে। '1' টাইপিং 49 দেয় , 1 পেতে 48 টি বিয়োগ করে, HourOfDay'ওয়ান' ফেরত পেতে কাস্ট / বাক্সটি দেয় ।

এই একই কৌশলটির পাওয়ারশেল সংস্করণটি একবার দেখুন


কিভাবে কাজ করে ? আসুন আমি 9 প্রবেশ করি বলে মনে করি 9 প্রোগ্রামটি তখন কী করে?
নিকোলাস বারবুলেসকো


-48এখানে এটি কি করে ?
নিকোলাস বারবুলেসকো

2
@ নিকোলাস বারবুলেসকো একটি যোগ করেছে এটি কীভাবে কাজ করে? অনুচ্ছেদ। এটা কি কোন মানে আছে?
Rene

1
@ নিকোলাস বার্বুলেসকো - এটি বর্ণমালা অনুসারে বাছাই করা হয়েছে। "এই শব্দগুলি সংখ্যা" ব্যতীত প্রতিটি প্রসঙ্গে যা বোঝায়। যেহেতু আমি নিশ্চিত যে ডকুমেন্টেশনটি স্বয়ংক্রিয়ভাবে উত্পন্ন হয়েছে, তাই এটি একটি নিবন্ধের বিশেষ ক্ষেত্রে বোধগম্য হবে না।
ববসন

13

বেফঞ্জ 98, 116 105 103 বাইট

&1-       v
vvvvvvvvvj<
"""""""""
etnxereoe
nheivuewn
igvsiorto
nie"ffh""
"es ""t
 ""   "
>>>>>>>>>4k,@

বেফুঞ্জ এর জন্য তৈরি করা হয়নি ...

ব্যাখ্যা:

&1-           ;Grab the input number (`n`) and subtract 1 from it
&1-       v   ;Start moving downwards
          <   ;Start moving leftwards
         j    ;Jump `n - 1` characters to the left.
vvvvvvvvvj    ;Redirect each of the possible locations to jump to, sending the IP down.

        "     ;If `n` was 1, push `o, n, e` onto the stack (`o` is at the bottom)
        e
        n
        o
        "

       "      ;If `n` was 2, push `t, w, o` onto the stack
       o
       w
       t
       "

    *
    *
    *

"             ;If `n` was 9, push `n, i, n, e` onto the stack
e
n
i
n
"

>>>>>>>>>     ;Collect all the different possible positions the IP could be in, and send it right
>>>>>>>>>4k,  ;Print the top 5 chars. If there are less than 5, the rest are null characters. This is allowed
            @ ;End of program

8
@ ডেনিস আমি দেখতে পাচ্ছি না যে এটি কীভাবে কঠিন হতে পারে। কেবল ফাইলটি নিন, এটিকে একটিতে পরিণত করুন, char[][]একটি xএবং yঅবস্থান রাখুন এবং সেই স্থানে চরিত্রটি কার্যকর করুন। সবচেয়ে কঠিন বিষয়টি প্রতিটি সম্ভাব্য চরিত্রের জন্য ক্রিয়াকলাপটিকে সংজ্ঞায়িত করা হবে।
জাস্টিন

1
আপনি সহজেই দুটি দিয়ে বাইট সংরক্ষণ করতে পারেন &1-
har-wradim

10

জাভাস্ক্রিপ্ট 68

আটোব / বিটিওএ একটি দরিদ্র লোকের সংকোচনের সরঞ্জাম হতে পারে (তবে আপনি যদি কনসোলে এটি চেষ্টা করতে চান তবে আপনি একবারে দেখতে যে ফর্ম্যাট করা পাঠ্যটি অনুলিপি করতে পারবেন না 'সম্পাদনা করতে যান এবং উত্স প্যানেল থেকে অনুলিপি করুন)

মার্কডাউন সম্পাদক এই উত্তরের কয়েকটি অক্ষর পছন্দ করেন না: কিছু অক্ষর সংরক্ষণে হারিয়ে যায়। তবুও, আমি মনে করি এটি একটি সম্পাদক সমস্যা, আমার নয়। হারানো অক্ষরগুলি পুরোপুরি বৈধ 8 বিট ইউনিকোড অক্ষর।
(অন্যথায় আমি ভুল, যদি এই সমস্যাটি ইতিমধ্যে মেটাতে বিতর্কিত হয় তবে আমাকে জানান) আপত্তিজনক চরিত্রগুলি পালিয়ে যাওয়ার সংস্করণটি এখানে রয়েছে, প্রতিটি অনুক্রম \ xNN 1 গণনা করা উচিত

alert(btoa("×C§{Dð£Dá­ç´\x16\x8b«ÐX¯{D¢ÇD\x9e½éô\x12(!·Cb\x9dí").split(0)[prompt()])

সাধারণ পরীক্ষা

ফায়ারফক্স কনসোলে:

[0,1,2,3,4,5,6,7,8,9]
.map(x=>x +',' btoa("×C§{Dð£Dá­ç´\x16\x8b«ÐX¯{D¢ÇD\x9e½éô\x12(!·Cb\x9dí").split(0)[x])

আমি অনুরূপ কিছু চেষ্টা করেছিলাম তবে একটি সংখ্যা দিয়ে শুরু করে কোনও বৈধ বেস 64 স্ট্রিং বের করতে পারিনি। আমি মনে করি আপনি উত্তর স্ট্যাকেক্সচেঞ্জ দ্বারা দূষিত হয়ে গেছেন।
nderscore

@ আন্ডারস্কোর, আপনার সত্য। পোস্টটি সংশোধন করা, এখনও আমার মতে এটি বৈধ
edc65

1
যে সংস্করণে পালানো অক্ষর রয়েছে সেগুলি সহ 3 এবং 8, আউটপুট Treeএবং EightF
জাস্টিন

3
@ কুইচুনস 'ট্রি' আমি
ইংরাজী বলছি

10

জাভাস্ক্রিপ্ট 73

alert('0one0two0three0four0five0six0seven0eight0nine'.split(0)[prompt()])

69

alert(btoa("ôéÞõ5õ1ëxO_¢êý|Þöȱõ'xß^hSôا{Ý").split(9)[prompt()])

টেকনিক্যালি alert('0one0two0three0four0five0six0seven0eight0nine'.split(0)[#])একই জিনিস হবে না কিন্তু আপনি 8 বাইট সংরক্ষণ? ব্যবহারকারী এখনও তাদের
পছন্দসই

@ এরিক_লাগারগ্রেন আপনার অর্থ কি ব্যবহারকারীকে উত্সটিতে নম্বর পরিবর্তন করতে হবে? আমি মনে করি না যে এটি ইনপুট হিসাবে গণনা করা হবে।
nderscore

ওহ, ঠিক আছে, আমি আপনার বোঝাতে চাইছি see আমি মনে করি আপনি যদি কনসোলে কোনও কমান্ডের মতো এটি চালিত হন তবে উত্সটির বিপরীতে এটি ইনপুটটির অংশ হতে পারে।
এরিক লেগারগ্রেন

7

পার্ল, 55

$_=(nine,eight,seven,six,five,four,three,two,one)[-$_]

এটি বিকল্প -p(+1 বাইট) দিয়ে চালিত হয় , যেমন:

perl -pe '$_=(nine,eight,seven,six,five,four,three,two,one)[-$_]'

ইনপুটটি STDIN এ প্রত্যাশিত এবং আউটপুট STDOUT এ লেখা হয়।

কোডটি কেবল একটি অ্যারে উত্পন্ন করে এবং সঠিক উপাদানটি নির্বাচন করে। বিকল্প -pইনপুট লাইনটি পড়ার যত্ন নেয় $_এবং ফলাফলটি মুদ্রণ করে $_

প্রকারভেদ:

  • নতুন লাইনের পিছনে (+3):

    $_=(nine,eight,seven,six,five,four,three,two,one)[-$_].$/

    বা (একই বাইট গণনা):

    s/./(nine,eight,seven,six,five,four,three,two,one)[-$&]/e

হালনাগাদ:

  • qw[...](ধন্যবাদ জায়েদ) এর পরিবর্তে খালি শব্দ ব্যবহার করা ।

  • নেতিবাচক সূচক একটি বাইট সংরক্ষণ করে (ধন্যবাদ আরগায়ার)।


1
বেশ কয়েকটি চরিত্র সংরক্ষণ করুন:$_=(one,two,three,four,five,six,seven,eight,nine)[$_-1]
জায়েদ

2
@ জায়েদ: ধন্যবাদ, এটি দুটি বাইট সংরক্ষণ করেছে (আমি অভ্যস্ত use strict)
হাইকো ওবারডিক

আমি "-1" পছন্দ করি না। $_=(nine,eight,seven,six,five,four,three,two,one)[-$_]- একটি চরিত্র ছোট।
আরগায়ার

@ আরগের: ধন্যবাদ, সুন্দর ধারণা
হাইকো ওবারডিক

6

ওরাকল এসকিউএল - 46

select to_char(to_date(&1,'j'),'jsp')from dual

প্রদর্শন

এর মধ্যে একটি মানক লুফোল অন্তর্ভুক্ত রয়েছে , আমি স্বীকার করি তবে এসকিউএল গল্ফস্ক্রিপ্টের চেয়ে কম; আমি প্রতিহত করতে পারি না!

এটি ওরাকল এর ডেটটাইম ফর্ম্যাট মডেলগুলি ব্যবহার করে (আব) কাজ করে । TO_DATE(n, 'j')একটি সংখ্যাটিকে জুলিয়ান দিবসে রূপান্তর করে , খ্রিস্টপূর্ব 1 জানুয়ারি, 4712 সাল থেকে দিনের সংখ্যা। TO_CHAR(<date>, 'jsp')এটিকে পূর্বে পূর্ণসংখ্যায় রূপান্তর করে (যদিও স্ট্রিং হিসাবে)। sp, একটি হল বিন্যাস উপাদান প্রত্যয় যে সংখ্যা spells। এটি আসলে বেশ কয়েকটি সংখ্যার সাথে কাজ করবে।

&1একটি প্রতিকল্পন পরিবর্তনশীল যে শুধুমাত্র ক্লায়েন্ট তা গ্রহণ, জন্য উদাহরণস্বরূপ SQL * প্লাস সঙ্গে কাজ করব।


ওরাকলের আরডিবিএমএসের সাথে আমার একটি প্রেম / ঘৃণার সম্পর্ক রয়েছে তবে এটি দুর্দান্ত।
Rene

6

সিজেম, 45 43 বাইট

"^AM-^L8M-xM-^L^US^_M-^WrM-rM- 1M-s^CHM-|M-X^HE,M-qM-^EM-q4"256bKb'ef+'j/li=

উপরোক্তগুলি ^ এবং এম-স্বীকৃতি ব্যবহার করে, যেহেতু কিছু অক্ষর অপ্রকাশনীয়।

আরও 9 টি বাইট ব্যয়ে, ছাপানো অক্ষরগুলি এড়ানো যায়:

" one two three four five six seven eight nine"S/li=

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

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

" Convert the string into an integer by considering it a base-256 number.                ";

"^AM-^L8M-xM-^L^US^_M-^WrM-rM- 1M-s^CHM-|M-X^HE,M-qM-^EM-q4"256b

" Convert the integer from above into an array by considering it a base-20 number.       ";

Kb

" Add the ASCII character code of “e” to all elements of that array. This casts to char. ";

'ef+

" So far, we've pushed the string “jonejtwojthreejfourjfivejsixjsevenjeightjnine”.       ";

" Split the the above string where the character “j” occurs.                             ";

'j/

" Read an integer from STDIN and push the corresponding substring.                       ";

li=

উদাহরণ

$ base64 -d > convert.cjam <<< IgGMOPiMFVMfl3LyoDHzA0j82AhFLPGF8TQiMjU2YktiJ2VmKydqL2xpPQ==
$ wc -c convert.cjam
43 convert.cjam
LANG=en_US cjam convert.cjam <<< 5
five

বাহ, আমাদের উত্তরগুলি সমান, এমনকি দৈর্ঘ্যেও (আমি ধরে নিই যে ব্যবহারকারী একটি স্ট্রিং ইনপুট দেয়)।
জাস্টিন

1
@ কুইনকুনস: একসাথে মন দুর্দান্ত মনে করে! : পি তবে ব্যবহারকারী ইনপুট পড়তে সিজেমে দুটি বাইটের দাম পড়বে, তাই আমাকে অন্য কিছু ভাবতে হবে ...
ডেনিস

@ কুইনকুনস: এটি গল্ফস্ক্রিপ্টের সাথেও কাজ করা উচিত, যদিও এটি সম্ভবত বাইটগুলি সংরক্ষণ করবে না। বেস 64 ডাম্প:IgGMOPiMFVMfl3LyoDHzA0j82AhFLPGF8TQiMjU2YmFzZSAyMGJhc2V7MTAxK30lIiIr
ডেনিস

এটিই আমি সামনে আসতে পেরেছি; এটি আর দীর্ঘ: golfscript.apphb.com/…
জাস্টিন

আপনি কি জানেন যে এনসোডিং গল্ফস্ক্রিপ্ট অ-অসি চরিত্রগুলির জন্য কী প্রত্যাশা করে? এটি UF-8 বলে মনে হচ্ছে না
জাস্টিন

5

গল্ফস্ক্রিপ্ট, 51 বাইট

~'
one
two
three
four
five
six
seven
eight
nine'n/=

এটি একটি সাধারণ দেখার সারণী। ইনপুটটি মূল্যায়ন করা হয় ( ~), মানগুলির একটি অ্যারে তৈরি করা হয় এবং সূচকটি পাওয়া যায়।

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


ব্যবহারকারীর অবশ্যই একটি স্ট্রিং ইনপুট করতে হবে, আপনার এটি হার্ড-কোডেড থাকতে পারে না। এছাড়াও, আপনার Try it hereলিঙ্কে আটকানো কোডের চেয়ে আলাদা কোড রয়েছে।
জন

@ চিপ্পিয়ারম্যান এই প্রোগ্রামটিতে ব্যবহারকারী একটি স্ট্রিং ইনপুট করে। কোডটিতে Try it hereলিঙ্কটির পার্থক্য কারণ ওয়েবপৃষ্ঠা ব্যবহারকারীদের ইনপুট সমর্থন করে না। এর পরে স্ট্রিংটি পরিবর্তন করুন ;, এটি ব্যবহারকারীর ইনপুটটির অনুরূপ।
জাস্টিন

আহ আমি দেখি. আমি গল্ফস্ক্রিপ্ট খুব ভাল জানি না, আমাকে জানানোর জন্য ধন্যবাদ।
জন

2
@ চিপ্পিয়ারম্যান: গল্ফস্ক্রিপ্ট স্ক্রিপ্টটি সম্পাদন করার আগে স্ট্যাকের উপর STDIN এর বিষয়বস্তু রাখে।
ডেনিস

2
Hah! আমি তোমাকে এক বাইট দিয়ে মারতে পারি ! ;-)
ইলমারি করোনেন

4

পার্ল, 60 বাইট

$_=(ZOneTwoThreeFourFiveSixSevenEightNine=~/.[a-z]*/g)[$_]

প্রয়োজন -pসুইচ (দুই বাইট)।

উদাহরণ

$ perl -p convert.pl <<< 5
Five

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

  • -pSTDIN থেকে পড়ে এবং ফলাফলটি সংরক্ষণ করে $_

  • =~/.[a-z]*/g পূর্বের পূর্বের শব্দের একটি (বড় হাতের) অক্ষরের সাবস্ট্রিংগুলিতে বিভক্ত করে তারপরে যে কোনও সংখ্যক ছোট হাতের অক্ষর।

  • (…) একটি অ্যারেতে সাবস্ট্রিংগুলি সংগ্রহ করে।

  • [$_] ব্যবহারকারীর ইনপুট সম্পর্কিত সাবস্ট্রিং পুনরুদ্ধার করে।

  • $_=…ফলাফল সংরক্ষণ করে $_

  • -pএর মান মুদ্রণ করে $_


2
আমি রেজেক্স ট্রিকটি পছন্দ করি। +1 টি
seequ

3

ডস ব্যাচ - 162 টি অক্ষর (লাইন বিরতি সহ)

এই উত্তরটি @ জিআরসি-র পাইথন উত্তর দ্বারা অনুপ্রাণিত হয়েছিল, যদিও আমার মনে তেমন কিছু ছিল।

@setlocal enabledelayedexpansion
@set s="ottffssennwhoiieiieoruvxvgn  ere ehe  e   nt
@set /a c=%1
@set z=!s:~%c%,1!
@if _%z%==_ exit /b
@echo %z%
@%0 %c%+9

ব্যবহার:

[ফাইলের নাম] [সংখ্যা]

উদাহরণস্বরূপ, কোডটি যদি স্পোক.বাট নামে একটি ফাইলে থাকে এবং আপনি "পাঁচ" নম্বরটি দেখতে চান তবে আপনি এটিকে চালিত করবেন:

speak 5

এছাড়াও, আউটপুটটি উপরে থেকে নীচে, বাম থেকে ডান নয়! পরিবর্তে তাই

পাঁচ

তুমি দেখবে

f
i
v
e


3

বাশ + কোর্টিলস, 64

অ-প্রতিযোগিতামূলক সংকোচনের ধারণা

xxd -p<<<TàPnàõ:àsÀ~®@ãCN|tr 0-9a-d \\ng-inor-x|sed -n $1p

এখানে কিছু বিদেশী চরিত্রগুলি ভাল রেন্ডার করতে না পারে, সুতরাং এই স্ক্রিপ্টটি এর বেস 64 প্রতিনিধিত্ব থেকে পুনর্গঠন করা যেতে পারে:

base64 -d <<< eHhkIC1wPDw8VOCLUIJu4PWWDzrgc8B+rkDjEoBDTnx0ciAwLTlhLWQgXFxuZy1pbm9yLXh8c2VkIC1uICQxcA==

উদাহরণ আউটপুট

$ ./n.sh 1
one
$ ./n.sh 9
nine
$ 

ব্যাখ্যা

আমার কাছে এটি ঘটেছিল যে স্ট্রিংটিতে one two three four five six seven eight nineকেবলমাত্র অক্ষর efghinorstuvwxএবং একটি স্পেস বিভাজক রয়েছে - মোট 15 টি অক্ষরের মান। সুতরাং প্রতিটি অক্ষর সম্ভাব্য 4 বিট, বা প্রতি 1 বাইট 2 অক্ষরে প্রতিনিধিত্ব করা যেতে পারে প্রতিটি বাইটকে দুটি হেক্স অঙ্কে বিভক্ত করার সহজ উপায় হিসাবে আমরা বাইটের হেক্স উপস্থাপনাটি ব্যবহার করতে পারি। তারপরে আমরা হেক্স ডিজিটগুলি আমাদের প্রয়োজনীয় অক্ষরগুলিতে trবা অনুরূপ অক্ষরে রূপান্তর করতে পারি । ভাগ্য এটা করা যাবে না, rstuvwxপরপর হয়, তাই হিসাবে প্রকাশ করা হতে পারে r-xথেকে tr। এনকোডিংটি এমনভাবে সাজানো হয়েছে eএবং fযেমন রয়েছে তেমনি রেখে দেওয়া হয় এবং শব্দগুলি লাইন-ব্রেক পৃথক পৃথক করে দেওয়া হয়, সুতরাং আমরা sedকেবল আমাদের প্রয়োজনীয় রেখাটি অপ্টউট করতে পারি।

এই ডিকোডিং প্রক্রিয়াটি মোটামুটি পরিমাণ অতিরিক্ত স্থান ব্যবহার করে শেষ হয়, সুতরাং এই উত্তরটি শেল-স্ক্রিপ্ট-স্টাইলের উত্তর হিসাবে অ-প্রতিযোগিতামূলক করে তোলে, তবে অন্যান্য ভাষায় এটি একটি দরকারী ধারণা হতে পারে।


3

(খাঁটি) বাশ, .৪

বৈধ ইনপুট ধরে ধরে, এটি প্রথম যুক্তি হিসাবে ইনপুট নেয়।

v=(o one two three four five six seven eight nine)
echo ${v[$1]}

একটি অ্যারে তৈরি করে v, তারপরে ইনপুটটিতে বর্ণিত উপাদানটি অ্যাক্সেস করে। যেহেতু অ্যারেগুলি শূন্য-সূচকযুক্ত, তাই আমাকে স্থানধারক হিসাবে আমাকে 0 তম উপাদান যুক্ত করতে হয়েছিল। বিকল্পভাবে (thnx @ ডেনিস উইলিয়ামসন এটি নির্দেশ করার জন্য):

v=(one two three four five six seven eight nine)
echo ${v[$1-1]}

2
একই চরিত্রের গণনা: v=(one two three four five six seven eight nine)এবংecho ${v[$1-1]}
ডেনিস উইলিয়ামসন

3

পাইথন 2.x - 65 64

@Grc এর উত্তরের মতো ভাল নয় তবে অবশ্যই আরও স্পষ্টত :-)

'one two three four five six seven eight nine'.split()[input()-1]

আরেকটি চর, @ ফ্লর্নকোকে ধন্যবাদ

'nine eight seven six five four three two one'.split()[-input()]

এটি একটি খুব সুন্দর। :-) এটি কাজ করে।
নিকোলাস বারবুলেসকো

3
আপনি এর মতো একটি চরিত্র সংরক্ষণ করতে পারেন:'nine eight seven six five four three two one'.split()[-input()]
ফ্লর্নকোকে

ভালো লাগছে!
উইলেম

3

জাভা 7 - 185

class Num{
public static void main(String[] args) {
    System.out.print("ONE,TWO,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE".split(",")[(new java.util.Scanner(System.in)).nextInt()-1]);
    }}

3

সি 111

#include <stdio.h>
int main(){printf("%.5s","one  two  threefour five six  seveneightnine"+5*(getchar()-'1'));}

দৈর্ঘ্য এখানে সাবধানে engineered হয় তাই আমি বাইনারি এবং ধর্মান্তরিত হিসাবে তার মানে বলতে পার যে দশমিক করতে। মাত্র 7 টি অক্ষরে, আমি নিশ্চিত যে আমার বিজয়ী আছে!


1
+1 কোড-গল্ফাররা সাধারণত যদি আপনার সি কোডটি চশমাগুলি পূরণ করে ততক্ষণ সতর্কতার সাথে সংশ্লেষ করে তবে তাতে আপত্তি নেই । সুতরাং আপনি #includeএবং main()এর রিটার্ন টাইপ বাদ দিতে পারেন। এছাড়াও একটি আপনার মত প্রকাশের refactoring বিট: main(){printf("%.5s","one two threefour five six seveneightnine"+5*getchar()-245);}। আমার গণনা অনুসারে 86 টি অক্ষর।
ডিজিটাল ট্রমা

আমি দৈর্ঘ্যের জিনিসগুলি পাই না, এবং আমি দেখতে পাই না যেখানে 7 টি অক্ষর থাকবে।
নিকোলাস বারবুলেসকো

@ নিকোলাস বারবুলেসকো: এটি ১১১ টি অক্ষর - তবে আমরা যদি 111বাইনারি হিসাবে বিবেচনা করি তবে 7এটি দশমিক দশকে রূপান্তরিত হয় ।
জেরি কফিন

জেরি, আপনার মাথায় কোড গল্ফ চলছে!
নিকোলাস বারবুলেসকো

3

বাশ বলুন (ওএস এক্স): 3 8

"আপনার লক্ষ্যটি হ'ল 1-9 এর মধ্যে একটি সম্পূর্ণ সংখ্যাটিকে যে শব্দটিকে উপস্থাপিত করে তাতে রূপান্তর করা"

গতবার আমি যাচাই করেছি, কথ্য শব্দগুলি শব্দও words পূর্ববর্তী প্রচেষ্টা (কোনও ইনপুট গ্রহণ করে না)

say 4

সম্পাদনা করুন, অবশ্যই ইনপুট পড়তে সক্ষম হবেন:

say|read

যে কোনও সংখ্যা টাইপ করুন এবং শব্দটি বেরিয়ে আসে। আমি জানি শেষ তারিখটি নির্ধারিত, তবে আমার মতে আমার প্রতিযোগিতায় জয়লাভ করা উচিত ছিল।

উদাহরণ অডিও ফাইল: four.aif


5 হওয়া উচিত নয়?
আরপিএক্স

@ আরপ্যাক্স আমি বিশ্বাস করি না ইনপুটটিকে একটি চরিত্র হিসাবে গণনা করা হয়, তাই না?
কাজিনকোচেন

1
এই চালাক। তবে এটি ইনপুট মিস করে।
নিকোলাস বারবুলেসকো

1
কখনও ব্যবহারকারীর কাছ থেকে ইনপুট গ্রহণ এবং এটি শুধুমাত্র কাজ করে সংখ্যা 4. হল: দুর্ভাগ্যবশত এই একটি বৈধ উত্তর কারণ নয়
জন

1
কাজিনকোকেইনের এই উত্তর সম্পর্কে চিপ্পেরম্যানের মন্তব্য সত্য। তবে এটি @ নিবন্ধিত ব্যবহারকারীদের দ্বারা উত্তরের জন্য সত্য । যাইহোক, চিপ্পেরম্যান এই কাজিনকোচেনের উত্তরটি প্রত্যাখ্যান করেছেন, এবং নিবন্ধিত ব্যবহারকারী বিজয়ীর প্রাক্তন উত্তর দ্বারা উত্তরটি ঘোষণা করেছেন। তদতিরিক্ত, নিবন্ধিত ব্যবহারকারীর দ্বারা উত্তরটি কাজিনকোকেইনের এই উত্তরের প্রতিরূপ। এটি অন্যায্য চেয়ে বেশি।
নিকোলাস বারবুলেসকো

2

ভিবিএস স্ক্রিপ্ট 98 80 75

msgbox split(" one two three four five six seven eight nine")(inputbox(""))

2

জে - 68 বা 60 57 বা 53 বাইট

ইন্টারেক্টিভ সংস্করণ (স্টিডিন):

>one`two`three`four`five`six`seven`eight`nine{~<:".1!:1]1

ফাংশন সংস্করণ:

f=:one`two`three`four`five`six`seven`eight`nine>@{~<:

ব্যাখ্যা:

f=:one`two`three`four`five`six`seven`eight`nine>@{~<:
                                                   <: Decrease by one
                                                 {~   Get the correct string
                                               >@     Unbox

".(1!:1)1 একটি স্ট্রিং পড়ে এবং এটি পূর্ণসংখ্যায় রূপান্তর করে


আপনি একটি চরকে ট্রেন ( (;:'one two blah')>@{~<:) লিখে অন্য একটি ছয়টি one`two`blahপরিবর্তে গেরুড ব্যবহার করে সংরক্ষণ করতে পারেন ;:
অ্যালগরিদমশর্ক

@ এলগোরিদিমশার্ক ধন্যবাদ! আমি এখনও জে শিখছি, যদিও, ট্রেনের সংস্করণটির জন্য পাঠ্যটিকে সীমাহীন র‌্যাঙ্কের দরকার হবে না (সম্পাদনা: দৃশ্যত নয় ... কেন নয়?) এবং জেরুন্ড সংস্করণ অতিরিক্ত উদ্ধৃতি (সম্পাদনা: ওহ, এটি একটি তালিকা তৈরি করে বক্স)?
seequ

বাম আর্গুমেন্টে একটি কাঁটাচামচ একটি বিশেষ্য থাকতে পারে, যা অবিচ্ছিন্ন র‌্যাঙ্ক ( অভিধানে কিউভি ) সহ যে বিশেষ্য উত্পাদন করে একটি ধ্রুবক ক্রিয়া সংক্ষেপণ হয় । এবং না, জেরুন্ডে কোনও অতিরিক্ত উদ্ধৃতি নেই: অপরিজ্ঞাত নামগুলিকে ক্রিয়াপদের রেফারেন্স হিসাবে বিবেচনা করা হয়, এবং এর জন্য জেরুন্ড নামের সাথে বাক্সযুক্ত স্ট্রিং।
অ্যালগরিদমশর্ক

এছাড়াও, আপনাকে একটি ক্রিয়া প্রকাশ হিসাবে STDIN সংস্করণ লিখতে হবে না: >one`two`three`four`five`six`seven`eight`nine{~<:".1!:1]1এটি 3 টি অক্ষর কম orter
অ্যালগরিদমশর্ক

1
@ অ্যালগরিদমশর্ক হাহাহা, আমি কেন সেভাবে করিনি?
seequ

2

পার্ল 36 (58 স্বতন্ত্র)

use Number::Spell;say spell_number<>

বা অতিরিক্ত মডিউল ছাড়াই:

say qw(one two three four five six seven eight nine)[<>-1]

আপনার প্রথম স্ক্রিপ্টটি আমার ম্যাকটিতে কাজ করে না। Can't locate Number/Spell.pm in @INC (@INC contains: /Library/Perl/5.16/darwin-thread-multi-2level /Library/Perl/5.16 /Network/Library/Perl/5.16/darwin-thread-multi-2level /Network/Library/Perl/5.16 /Library/Perl/Updates/5.16.2 /System/Library/Perl/5.16/darwin-thread-multi-2level /System/Library/Perl/5.16 /System/Library/Perl/Extras/5.16/darwin-thread-multi-2level /System/Library/Perl/Extras/5.16 .) at toto.pl line 1. BEGIN failed--compilation aborted at toto.pl line 1.
নিকোলাস বারবুলেসকো

আপনার দ্বিতীয় স্ক্রিপ্টটি আমার ম্যাকটিতে কাজ করে না। syntax error at titi.pl line 1, near "say qw(one two three four five six seven eight nine)" Execution of titi.pl aborted due to compilation errors.
নিকোলাস বারবুলেসকো

2

অ্যাপলস্ক্রিপ্টে; 123 অক্ষর।

{"one","two","three","four","five","six","seven","eight","nine"}'s item((display dialog""default answer"")'s text returned)

এই স্ক্রিপ্টটি একটি সংলাপে ইনপুট নেয়। তারপরে এটি অ্যাপলস্ক্রিপ্টের  ফলাফলের ফলাফল দেয়

উদাহরণ:

  • ইনপুট : 6
  • আউটপুট: "six"

এখানে একটি সুন্দর সংস্করণ:

set l to {"one","two","three","four","five","six","seven","eight","nine"}
set n to text returned of (display dialog "?" default answer "")
display dialog (l's item n) buttons ("OK") default button 1

এই সংস্করণটি একটি সুন্দর সংলাপে আউটপুট প্রদর্শন করে।

উদাহরণ:

  • ইনপুট : 9
  • আউটপুট: nine

[উত্তর সম্পাদিত; ইনপুটটির জন্য সংলাপটি কিছুটা উন্নত করেছে; এখনও 124 অক্ষর। উত্তর সম্পাদিত আবার; এখন ১ টি চর কম! ]


1
set n to text returned of... কি দারুন.
17:25

2

পাওয়ারশেল - 91 74

[Enum]::ToObject([System.DirectoryServices.ActiveDirectory.HourOfDay],[Console]::Read()-48)

এনাম এবং টোঅজেক্ট কলটি সরানোর জন্য কীভাবে কাস্ট করবেন তা খুঁজে পেয়েছেন:

[System.DirectoryServices.ActiveDirectory.HourOfDay]([Console]::Read()-48)

কিভাবে কাজ করে?

আওয়ারঅফডে একটি এনাম টাইপ তাই আমরা ম্যাজিক কনস্ট্যান্টের পরিবর্তে নাম ব্যবহার করতে পারি। এনাম ধরণের একটি টসস্ট্রিং () বাস্তবায়ন রয়েছে যা আপনাকে ধ্রুবক মানের নাম দেয়। আপনি একটি এনামের জন্য একটি int কাস্ট করতে পারেন। কনসোল.আরড () পূর্ণসংখ্যা হিসাবে উপস্থাপিত ইনপুট স্ট্রিমের একটি অক্ষর পড়ে। '1' টাইপ করে 49 দেয়, 1 পেতে 48 টি বিয়োগ করে, 'ওয়ান' ফেরত পাওয়ার জন্য আওয়ার অফডিতে কাস্ট করা হয়।

কারণ পাওয়ারশেল আউটপুট স্ট্রিমে লিখিত সমস্ত অবজেক্টের উপর একটি স্ট্রাস্টিং করে এবং পাওয়ারফেল ছাড়াও এটি প্রয়োজনীয় সমস্ত যা একটি এক্সিকিউটেবলে পরিণত করার জন্য ফ্লফের প্রয়োজন হয় না ...


2

সিজেম - 50

এটি একটি সরল ASCII সমাধান যা HTTP অনুরোধগুলি ব্যবহার করে (এটি প্রশ্নে অনুমোদিত):

"aj21.com/"r+g

সার্ভারে 1, 2, ..., 9 নামে 9 টি সরল-পাঠ্য ফাইল রয়েছে, যার প্রতিটিতে সংশ্লিষ্ট শব্দটি রয়েছে।

মোট আকার: 14 + 3 ("এক") + 3 ("দুটি") + 5 + 4 + 4 + 3 + 5 + 5 + 4 = 50.
এটি একটি সংক্ষিপ্ত ডোমেন ব্যবহার করে আরও গল্ফ করা যেতে পারে।

অনলাইন ইন্টারপ্রেটার এইচটিটিপি অনুরোধগুলি সমর্থন করে না, তাই জাভা ইন্টারপ্রেটার ব্যবহার করে প্রোগ্রামটি চালানো দরকার ।


1
ডাউনভোটিং হলে দয়া করে একটি মন্তব্য যুক্ত করুন।
অদিতসু

-1, এই একটি হল মান ঘুলঘুলি
nyuszika7h

3
@ nyuszika7h এটি নির্দিষ্টভাবে এই প্রশ্নে অনুমোদিত হয়েছে
অদিতসু

1
দুঃখিত, আমি এটি মিস করেছি। উত্তরটি সম্পাদিত না হওয়া পর্যন্ত আমি এখনই আমার ডাউনভোটটি পূর্বাবস্থায় ফেরাতে পারি না।
nyuszika7h

1
@ nyuszika7h সম্পাদিত
aditsu

2

ব্যাচ - 86

অন্যান্য ব্যাচের উত্তরের তুলনায় অনেক কম, এবং আশ্চর্যজনকভাবে প্রতিযোগিতামূলক।

for /f "tokens=%1" %%1 in ("one two three four five six seven eight nine") do echo>%%1

হিসাবে ব্যবহৃত হয় filename.bat number, এবং আউটপুট সঠিক সংখ্যার নাম সহ একটি ফাইল আকারে।


2

রুবি 64

p %w?one two three four five six seven eight nine?[$*[0].to_i-1]

1
এক্স এর জায়গায় সরাসরি 9 কে প্রতিস্থাপন করে আপনি আরও কিছু বাইট কাটতে পারেন
মিঃ এলিয়েন

6
এই কোডটি কোথায় ইনপুট নেয় তা আমি দেখতে পাচ্ছি না। আপনি কেন 9-1বলতে পারেন এবং কেন লিখুন 8? অবশ্যই উভয় 9-1এবং 8ভুল; এই স্ক্রিপ্টটি সর্বদা "নয়" আউটপুট দেয় এবং ইনপুট উপেক্ষা করে।
রায় তোয়াল

2

বেস 9

কাজিনকোইকেনের উত্তরের লজ্জাজনক লিনাক্স-প্রতিলিপি

spd-say 1

একটি কথা বলে


1
ইনপুট 1 হলে এটি কি কাজ করবে না?
জন

1
@ চিপ্পিয়ারম্যান এটি যে কোনও সংখ্যার জন্য কাজ করে
নিবন্ধিত ব্যবহারকারী

সীমাবদ্ধ, তবে চালাক!
নিকোলাস বারবুলেসকো

এটি ইনপুট মিস করে।
নিকোলাস বারবুলেসকো

@nicolasbarbulesco হ্যাঁ। তবে আরও অনেক উত্তর ছিল যেগুলি মিস করে ইনপুট, তাই আমি এটি নিয়ে এগিয়ে গেলাম।
নিবন্ধিত ব্যবহারকারী

2

গল্ফস্ক্রিপ্ট, 50 বাইট

আমি দেখতে চেয়েছিলাম যে আমি কুইকুনাক্সের 51-বাইটের স্ব-নিযুক্ত গল্ফস্ক্রিপ্ট সমাধানটি পরাস্ত করতে পারি কিনা । দেখা যাচ্ছে যে যথেষ্ট কৌশল সহ, হ্যাঁ, আমি পারি - এক বাইট দ্বারা।

যেহেতু আমি একটি কৌশল ব্যবহার করছি তা হ'ল প্রিন্টযোগ্য এএসসিআইআই ব্যাপ্তির বাইরের ব্যবহার, ফলস্বরূপ প্রোগ্রামটি এখানে সরাসরি আটকানো যায় না। পরিবর্তে, আমি এটির একটি হেক্স্স ডাম্প সরবরাহ করছি; ইউনিক্সিশ সিস্টেমের ব্যবহারকারীরা xxd -rহেক্স ডাম্প থেকে আসল 50-বাইট গল্ফস্ক্রিপ্ট প্রোগ্রামটি পুনর্গঠন করতে ব্যবহার করতে পারেন :

0000000: 7e6e 270b 97eb 442f e166 9894 9f00 c63c  ~n'...D/.f.....<
0000010: 8128 73a3 9b55 5065 a9fb f06a 2727 ff16  .(s..UPe...j''..
0000020: 277b 6261 7365 7d2f 2b6e 2f3d 7b39 392b  '{base}/+n/={99+
0000030: 7d25                                     }%

এই প্রোগ্রামটি উত্পন্ন করার জন্য ব্যবহৃত প্রাথমিক কৌশলটি সহজ: আমি দীর্ঘ স্ট্রিং আক্ষরিক সংক্ষিপ্ত করে যা কুইঞ্চুনসের বেশিরভাগ কোডকে cচরিত্রের মানগুলি থেকে 99 (অক্ষরের ASCII কোড ) বিয়োগ করে, ফলাফল 22 কে সংখ্যারূপে সংখ্যার হিসাবে ব্যাখ্যা করে (অক্ষরগুলি পর্যন্ত এনকোড করার জন্য যথেষ্ট x) এবং তারপরে আমার প্রোগ্রামের প্রথমার্ধের বেশিরভাগ অংশ তৈরি করে অরক্ষিত বাইট স্ট্রিং তৈরি করতে বেস 255 এর ফলাফলের সংখ্যাটি পুনরায় এনকোড করুন। প্রোগ্রামের বাকী অংশগুলি তখন এই প্রক্রিয়াটিকে বিপরীত করে স্ট্রিংটিকে আবার মুদ্রণযোগ্য কিছুতে ডিকোড করে।

(যেহেতু সংখ্যার নামগুলিতে প্রকৃতপক্ষে উপস্থিত সর্বনিম্ন অক্ষরটি হ'ল e, আমি ASCII কোডগুলি থেকে 101 বিয়োগ করে এবং বেস 20 ব্যবহার করে বাইট স্ট্রিংটি আরও সংক্ষিপ্ত করতে পারতাম However তবে, ১০১ বিয়োগ করলে চিঠিটি oএকটি নতুন লাইনে ম্যাপ করা হবে , যা আমি আমি নম্বর ডিলিমিটার হিসাবে ব্যবহার করছি কারণ এটি nগল্ফস্ক্রিপ্টে বিল্ট-ইন ধ্রুবক হিসাবে আরামদায়কভাবে উপলব্ধ around চারপাশে কাজ করা আমার এক বাইটের চেয়ে বেশি ব্যয় করতে হবে যা নীচের বেসটি ব্যবহার করে সংরক্ষণ করবে the অফসেট 99 ব্যবহার করে চিঠিটির সাথে সম্পর্কিত নিউলাইনটি ছেড়ে যায় m, যা সংখ্যার নাম থেকে সহজেই অনুপস্থিত))

প্রোগ্রামটির একটি ডি গল্ফ সংস্করণ এখানে রয়েছে:

~       # eval the input, turning it into a number
n       # push a newline onto the stack; we'll need it later

# this is the byte string encoding the number names:
"\x0B\x97\xEBD/\xE1f\x98\x94\x9F\x00\xC6<\x81(s\xA3\x9BUPe\xA9\xFB\xF0j"

# convert the encoded string from base 255 to base 22
# (and, incidentally, from a string to an array):
"\xFF\x16" {base}/

+       # prepend the newline pushed earlier to the array, re-stringifying it
n/      # split the resulting string at newlines
=       # pick the substring corresponding to the input number
{99+}%  # add 99 to the character values in the chosen substring
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.