ওয়াজ মনিটর


17

চ্যালেঞ্জ

আমি সম্প্রতি 8-বিট কম্পিউটারে প্রবেশ করেছি এবং তাদের এবং অন্যদের মতো কাজ করে মুগ্ধ হয়েছি; সুতরাং এই কোড গল্ফের উদ্দেশ্য হ'ল, অ্যাপল আইয়ের জন্য স্টিভ ওয়াজনিয়াক ডিজাইন করা ওয়াজ মনিটরের একটি অংশের প্রতিরূপ করা is

আপনি দুটি বাইটের একটি প্রস্থ, (কমপক্ষে মান 22 হেক্সাডেসিমেল মান একটি অ্যারের সঞ্চয় করতে হয় $ 10 , সর্বোচ্চ মান $ মুক্তিযোদ্ধা ), এবং তারপর গ্রহণ এন ইনপুট -amount। (সাধারণত দুটি; ব্রেইনফাকের মতো ভাষাগুলি একটি কঠিন সময় থাকতে পারে)।
ইনপুটগুলি উল্লেখ করতে হবে যে অ্যারে থেকে কোথায় মুদ্রণ শুরু হবে এবং কোথায় থামতে হবে; সংজ্ঞায়িত আচরণ সহ একটি ইনপুটটির প্রারম্ভিক মানটি শেষ মানেরটির সাথে কম বা সমান হবে। আপনার প্রোগ্রামটি অবশ্যই অবশ্যই হেক্সাডেসিমালগুলি ইনপুটযুক্ত এবং এর সাথে প্রতিটি হেক্সাডেসিমাল মান মুদ্রণ করতে সক্ষম হতে হবে ।

এর একটি উদাহরণ:

Array
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15

Values
FF F4 B6 D7 40 00 00 A4 F0 00 FF 0D 9C 21 65 C4 02 28 90 E7 D6 A5

input first num:
04
input second num:
14
40 00 00 A4 F0 00 FF 0D 9C 21 65 C4 02 28 90 E7 D6

এখন এই অনুশীলনের আকর্ষণীয় অংশটি হ'ল আপনি যা ব্যবহারকারীর ইনপুটটির সীমা পরীক্ষা করতে চান তা ব্যবহার করতে পারেন। ব্যক্তি ইনপুট helloএবং আপনার প্রোগ্রামের আচরণ নির্ধারিত হয়েছে? এটা ছাড়াই ছাড়েন? তারা উভয়ই বৈধ।

একমাত্র নিয়ম:

1. আপনার প্রোগ্রামটি শুরু হওয়ার আগে আপনাকে অবশ্যই 22 টি হেক্সাডেসিমাল মানগুলির মান অন্তর্ভুক্ত করতে হবে, (ব্যবহারকারীকে ইনপুট জিজ্ঞাসা করতে পারে না)।
২. হেক্সাডেসিমাল মানগুলির আউটপুট অবশ্যই সঠিক ফর্ম্যাটটি অনুসরণ করবে: 00 FF 00 FF 00ট্রেলিং স্পেস, ট্যাব বা লাইনগুলি ঠিক আছে। চরিত্রগুলি হয় না।
৩. প্রোগ্রামটি কোনও বার্তা সহ ইনপুটগুলি জিজ্ঞাসা করতে হবে না । আপনি যদি চান তবে "বার্তা" খালি ছেড়ে দিন। ব্যবহারকারীকে অবশ্য হেক্স-বাউন্ডস ইনপুট করতে হবে।
৪. হেক্সাডেসিমালগুলির মানগুলি যেমন সিদ্ধান্ত নেওয়ার জন্য আপনার উপর নির্ভর করে আপনার অবশ্যই একটি প্রোগ্রাম তৈরি করতে হবে যা স্টোরেজ থেকে মানগুলি আনবে, কেবল মুদ্রণের মানগুলি ছাপিয়ে কোনও প্রোগ্রাম নকল করার বিরোধিতা করবে । (যেমন $ 00 এর তালিকা)।
5। ইনপুটগুলির এন-পরিমাণ , দুটি বাইট-প্রস্থের একটি হেক্সাডেসিমাল চিনতে আপনার পছন্দের ভাষার জন্য প্রয়োজনীয় ইনপুটগুলির পরিমাণ বোঝায়। যেমন। (ব্রেনফাকের প্রতি হেক্সে দুটি ইনপুট লাগবে, এটি দুটির জন্য চারটি হয়ে যাবে)।

আপনার স্পষ্টতা প্রয়োজন হলে নির্দ্বিধায় মন্তব্য করুন।

এটি কোড গল্ফ, তাই বাইট সংখ্যার সংক্ষিপ্ত উত্তরটি হ'ল বিজয়ী।

লিডারবোর্ড

এখানে মার্টিন এেন্ডারের সৌজন্যে স্নিপেট তৈরির একটি লিডারবোর্ড রয়েছে ।

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

# Language Name, N bytes

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

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


আমরা কি ব্যবহারকারীকে দুটি ইনপুট বা এন জিজ্ঞাসা করছি? আমরা কি 22 টি হেক্সের মানগুলি বেছে নেব?
xnor

হ্যাঁ, 22 টি মানগুলি সিদ্ধান্ত নেওয়ার জন্য আপনার। ইনপুট মানগুলি, তারা যে কোনও পরিমাণ হতে পারে। আমি বলেছিলাম nযে ব্রেইনফাক 2 টি চরিত্রের স্ট্রিং নিতে পারে না, আপনাকে প্রথম বাইটটি, তারপরে প্রথম মানটির জন্য দ্বিতীয়টি ইনপুট করতে হবে এবং তারপরে এটি দ্বিতীয় মানের জন্য আবার করতে হবে, মোট 4 ইনপুট। আপনার পছন্দ মতো এগুলি অনেকগুলি হতে পারে।
ফিন র‌্যামেন্ট

তবে মানগুলির সাথে, আপনি কেবল সেগুলি সব 00 হিসাবে রাখতে পারবেন না এবং কোনও প্রোগ্রামের নকল করে যা আসলে অ্যারেগুলি পড়তে পারে। প্রশ্ন আপডেট করা হচ্ছে।
ফিন র‌্যামেন্ট

ইনপুট 2 যদি ইনপুট 1 এর চেয়ে কম হয় তবে এটি কি মোড়ানো বা বিপরীতে পড়তে হবে?
জোনাথন অ্যালান

@ জোনাথান অ্যালান এটি সম্পূর্ণরূপে আপনার উপর নির্ভর করে। কেবল মনে রাখবেন, ইনপুটগুলি সঠিক কিনা তা নিশ্চিত করে আপনার কোডটি আরও বড় করতে পারে। নিয়মগুলির ঠিক উপরে লেখা হিসাবে, আপনি যে কোনও ধরণের ইনপুট (আপনার অবধি) মঞ্জুরি দিতে পারবেন, যদি আপনি চান তবে অপরিজ্ঞাত আচরণ বা ত্রুটি বাড়ে।
ফিন রায়মেন্ট 9

উত্তর:


4

জেলি , 24 21 বাইট

w@€ØHḅ⁴
ɠǵɠÇr@b⁴ịØHK

নির্বাচিত মানসমূহ: [00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 1F 10 11 12 13 14 15]

TryItOnline

দ্বিতীয় ইনপুট যদি প্রথমটির চেয়ে কম হয় তবে এটি বিপরীত ক্রমটিকে আউটপুট করে।
সীমা ছাড়াই আচরণ অপরিচ্ছন্ন (যেমন "foo", "14" 38 টি মান দেয়, যার বেশিরভাগ এমনকি অ্যারেতেও নয় এবং যার অনেকগুলি দৈর্ঘ্য 2 নয়)

কিভাবে?

w@€ØHḅ⁴ - Link 1, parse a string as a 1-based hex value e.g. "14"
w@€      - first index (1-based) of each character in
   ØH    - hex digits: "0123456789ABCDEF"                   [2,5]
     ḅ⁴ - convert from base 16                                 37

ɠǵɠÇr@b⁴ịØHK - Main link
ɠ  ɠ          - read a line from stdin               e.g. "04"  "14"
 Ç  Ç         - call the last link (1) as a monad          21    37
  µ           - monadic chain separation
     r@       - inclusive range, with reversed arguments  [   21,   22,...,   36,   37] 
       b⁴     - convert to base 16                        [[1,5],[1,6],...,[2,4],[2,5]]
         ị    - index into
          ØH  - hex digits: "0123456789ABCDEF"            [ "04", "05",..., "13", "14"]
            K - join with spaces

আহ, আমাকে ক্ষমা করুন আপনি সত্যিই সঠিক ছিল। ভাল হয়েছে, এবং লিডারবোর্ডের অবস্থানটি রয়েছে # 1। :)
ফিন রায়মেন্ট 10

1
হ্যাঁ, আমি সবেমাত্র একটি অফসেট মান (এখন 1F) সরিয়ে নিয়েছি, যার অর্থ হেক্স ইনপুটগুলির "সঠিকভাবে" ব্যাখ্যা করার দরকার নেই বা আমাকে ফিরে রূপান্তর করতে দুটি হেক্স সংখ্যা দেওয়ার জন্য 16 যোগ করতে হবে।
জোনাথন অ্যালান

4

জাভাস্ক্রিপ্ট (ES6), 118 115 112 102 82 81 বাইট

ETH প্রডাকশনগুলির জন্য 1 বাইট সংরক্ষণ করা হয়েছে

নির্বাচিত মানসমূহ:

00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15
-----------------------------------------------------------------
10 10 11 14 10 10 15 15 11 14 10 10 15 15 11 14 10 10 15 15 10 11
  • নিম্ন সীমাটির জন্য অনুরোধ করা হয়, তারপরে উপরের বাউন্ডের জন্য (যেমন 0x04/ 0x0f)।
  • একটি অবৈধ নিম্ন সীমাটি 0x00(ন্যূনতম মান) হিসাবে ব্যাখ্যা করা হবে ।
  • একটি অবৈধ উপরের সীমাটি 0x15(সর্বোচ্চ মান) হিসাবে ব্যাখ্যা করা হবে ।
  • নিম্ন সীমাটি উপরের বাউন্ডের চেয়ে বেশি হলে আউটপুট কিছুই না।

alert((1/7+'789').replace(/./g,(v,i)=>i<a|i>b?'':(v|10)+' ',p=prompt,b=p(a=p())))

পূর্ববর্তী সংস্করণ (97 বাইট)

'সত্য' হেক্সাডেসিমাল মানগুলির ছদ্ম-এলোমেলো তালিকা তৈরি করা:

alert((1/7+'789').replace(/./g,(v,i)=>i<a|i>b?'':(v*7|16).toString(16)+' ',p=prompt,a=p(),b=p()))

ক্রম:

10 10 17 1c 1e 38 33 31 17 1c 1e 38 33 31 17 1c 1e 38 33 31 38 3f

"বার্তা": "আনকাচড সিনট্যাক্স এরিয়ার: অবৈধ ডেস্ট্রাকচারিং অ্যাসাইনমেন্ট টার্গেট"
ফিন রায়মেন্ট

@ ফ্রাইমেন্ট - এটি কি ক্রোম, তাইনা? এটি অদ্ভুত কারণ এটি [a,b]=prompt().split(' ')কমান্ড লাইনে অভিযোগ করে না । যাইহোক, আমার আপডেট করা উত্তরটি এটি ঠিক করা উচিত।
আর্নৌল্ড

সাবাশ! এখন কাজ করে। ক্রোম এটি করে এমনটি অদ্ভুত। আমি এটি আপনার জেএস পরীক্ষক এবং আমার বিকাশকারী কনসোলে পরীক্ষা করেছি। একই ত্রুটি। লিডারবোর্ডে স্বাগতম।
ফিন রায়মেন্ট 11

আপনি 0x04
হেডি

1
ডুড, আপনার বিকল্পটিতে কোনও ভুল নেই, এটি এখানে দুর্দান্ত কাজ করে এবং নিয়মের মধ্যে রয়েছে। আপনার পোস্ট আপডেট! :)
ফিন রায়মেন্ট 12

3

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

p=prompt,f=(a=+p(),b=+p(),[x,y,...s]='FFF4B6D7402011A4F0D0FF3D9C2165C4A22890E7D6A5')=>a?f(a-1,b-1,s):x+y+' '+(b?f(a,b-1,s):'');alert(f())

নির্বাচিত মানসমূহ:

FF F4 B6 D7 40 20 11 A4 F0 D0 FF 3D 9C 21 65 C4 A2 28 90 E7 D6 A5

ইনপুট:

  • ইনপুট ফর্ম্যাট হয় 0x14
  • যদি কোনও ইনপুট নেতিবাচক হয় বা 1 ম ইনপুট 2 য়: InternalError: too much recursion
  • NaNসীমা ছাড়িয়ে জন্য মুদ্রণ করবে ।

পূর্ববর্তী সমাধান:
152 বাইট:

i=parseInt,p=prompt,f=(a=i(p()),b=i(p()),[x,y,...s]='FFF4B6D7402011A4F0D0FF3D9C2165C4A22890E7D6A5')=>a?f(a-1,b-1,s):x+y+' '+(b?f(a,b-1,s):'');alert(f())

107 বাইট, অবৈধ সমাধান (ইনপুটগুলি অনুপস্থিত):

f=(a,b,[x,y,...s]='FFF4B6D7402011A4F0D0FF3D9C2165C4A22890E7D6A5')=>a?f(a-1,b-1,s):x+y+' '+(b?f(a,b-1,s):'')

1
বন্ধ! তবে আপনাকে ইনপুটটির জন্য ব্যবহারকারীকে জিজ্ঞাসা করতে সক্ষম হতে হবে। আপনি console.log(...)যদিও দিয়েছিলেন তা আমি পছন্দ করি । ;)
ফিন রায়মেন্ট 10

@ ফ্রাইমেন্ট var এবং শেষগুলি ;উত্তরের অংশ নয়। এটি কেবল স্নিপেটের জন্য, সেই কারণেই আমি লাইনব্রেক যুক্ত করেছি। আমি উত্তরটি সম্পাদনা করব।
হেডি

আমার খারাপ @ হেডি, সে সম্পর্কে দুঃখিত।
ফিন রাইমেন্ট

2

পাইথন, 88 87 86 বাইট

1 জন বাইট সংরক্ষণ করুন @ জোনাথান অ্যালানকে ধন্যবাদ
1 বাইট আবার জোনাথন অ্যালানকে সংরক্ষণ করুন

কোডের বেসটিও বদলেছে, এখন অনেক সুন্দর।

a,b=[int(x,16)for x in raw_input().split()];l=[0]*22
while a<=b:print"%02x"%l[a],;a+=1

নির্বাচিত মান: প্রতিটি 00কিছুর জন্য।

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

এটি পাইথন 2.x এবং 3.x উভয় ক্ষেত্রেই কাজ করা উচিত; আমি ভুল হলে দয়া করে আমাকে সংশোধন করুন, যেহেতু আমার সিস্টেম উভয়কে সমর্থন না করার কারণে আমার উভয় দোভাষীর অ্যাক্সেস নেই।


2

সি ++, 98 95 93 বাইট

#include <iostream>
int _[22],a,b;int main(){for(std::cin>>a>>b;b/a++;)printf("%02x ",_[a]);}

আমার নির্বাচিত মানগুলি 0 টি


প্রোগ্রামিং ধাঁধা এবং কোড গল্ফ স্বাগতম! এটি একটি ভাল-গল্ফ উত্তর, তবে আমি মনে করি না যে এটি চ্যালেঞ্জের প্রয়োজনীয়তা পূরণ করে। আপনি আপনার 22 টি নির্বাচিত হেক্সাডেসিমাল মানগুলি অন্তর্ভুক্ত করবেন?
ইটিএইচ প্রডাকশনগুলি

প্রায় আছে! একমাত্র সমস্যাটি হ'ল, যখন আমি মানগুলি প্রবেশ করিয়েছিলাম 04এবং 06আমি কেবল দুটি মান ফিরে পাই। আমি সন্দেহ করছি যে এগুলি 05এবং 06মানগুলি। ইনপুটযুক্ত মানগুলির মধ্যে এবং এর সাথে আপনাকে সমস্ত মান সরবরাহ করতে হবে ।
ফিন রাইমেন্ট 23

1
@ ফ্রিমেট, ওহ, ঠিক আছে!
ফাতেহ বাকির

1

পার্ল, 79 45 41 বাইট

"ন্যূনতম মান $ 10" - উদাহরণটিতে সর্বনিম্ন $ 00 রয়েছে - এটি কি টাইপো?

এখানে 41 বাইটে একটি বরং বিরক্তিকর পার্ল উত্তর দেওয়া হয়েছিল (46 টি ছিল এবং তারপরে আমি স্পেসগুলি দেখতে থাকি, পেরেনগুলি আমি অনুকরণ করতে পারি)। দুটি লাইনে ইনপুট নেয়।

printf'%02X ',$_ for(4..26)[hex<>..hex<>]

ডেটা একটি তালিকা 04..1A

আমি প্যাক ও আনপ্যাক নিয়ে খুব চালাক হওয়ার আগে। এর ইনপুট বাইটগুলি একবারে একসাথে ধোঁয়া enteredোকানো হয়, যেমন "020E '২ য় -14 ম এন্ট্রি প্রিন্ট করবে

printf'%02X ',$_ for sub{(4..26)[shift..shift]}->(unpack'CC',pack'H4',<>)

সমস্ত 0 এর ব্যবহার করে এটি আরও গলফ করার চেষ্টা করুন substr, এবং printf'%*vX'... না যে আমার উত্তরকে আরও দীর্ঘায়িত করছে। 48 টি অক্ষর (ascii '7' এর স্ট্রিং ব্যবহার করে, হেক্স 37 ডেটা হিসাবে)

printf'%*vX',' ',substr 7x22,$s=hex<>,1+hex<>-$s


1

স্কালা, 45 বাইট

(_:Int)to(_:Int)map(x=>f"$x%02X")mkString " "

Ungolfed:

(a:Int,b:Int)=>a.to(b).map(x=>f"$x%02X").mkString(" ")

মান হিসাবে ব্যবহার 00করে FFতবে 2147483647 অবধি কাজ করে।


error: ')' expected but string literal found.a.to(b).map(
ফিন রাইমেন্ট

জানি না এটা শুধু আমি বা কি। : / আমি এটি চালানোর চেষ্টা করব?
ফিন রাইমেন্ট 23

@ ফ্রাইমেন্টটি সম্ভবত স্ট্রিং ইন্টারপোলেশন এর কারণে, যা স্কেলা ২.১০.০
করভাস_192

সুতরাং আপনি কোন সংস্করণটি এটি তৈরি করেছিলেন? 2.9?
ফিন রাইমেন্ট

@ ফ্রাইমেন্ট আমি ২.১১..7 রিপল ব্যবহার করেছি
করভাস_192

1

সি, 176 175 161 বাইট

1 জন বাইট সংরক্ষণ করুন @
জোনাথান অ্যালানকে বিশাল ধন্যবাদ আমাকে 14 বাইট বাঁচানোর জন্য @ ডাউনভোটারকে ধন্যবাদ !

int main(){int a[44]={0};char s[2];scanf("%s",s);int b=(int)strtol(s,0,16);scanf("%s",s);int c=(int)strtol(s,0,16);while(b<=c){printf("%d%d ",a[b],a[b+1]);b++;}}

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

নির্বাচিত মান: প্রতিটি 00কিছুর জন্য।

অন-গল্ফ উত্তর:

int main() {
    int a[44] = {0};
    char s[2];
    scanf("%s", s);
    int b = (int) strtol(s, 0, 16);
    scanf("%s", s);
    int c = (int) strtol(s, 0, 16);
    while (b <= c) {
        printf("%d%d ", a[b], a[b+1]);
        b++;
    }
}

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

এগুলি অবশ্যই সঠিক ক্রমে থাকা উচিত, কারণ কোনও ছোট মানটি- whileলুপটি চালাবেন না তার আগে একটি বড় মানের অনুরোধ করা ।

জিনিসটি হ'ল এখানে কোনও বাফার-ওভারফ্লো সুরক্ষাও নেই, তাই আমি কেবল urd 0 থেকে $ এফএফএফএফের মতো পরিসরের মতো অযৌক্তিক কিছু অনুরোধ করতে পারি এবং a[44]অ্যারের জন্য মেমরির বরাদ্দের শুরু থেকেই আমি আমার কম্পিউটারের মেমোরিতে সমস্ত কিছু পেয়ে যাব , 65536 মানগুলি পরে সমস্ত উপায়।


ইনপুট ফর্ম্যাটে একটি একক শ্বেতস্পেস অক্ষর ইনপুট স্ট্রিমের যে কোনও পরিমাণ হোয়াইটস্পেসের সাথে মেলে, যদিও বেশিরভাগ স্ক্যানফ ফর্ম্যাটগুলি হোয়াইটস্পেসকে যাইহোক এড়িয়ে যায়, যার কথা বললে কেন মাঝখানে মানুষটিকে কেটে %xসরাসরি ব্যবহার করবেন না?
নিল

স্টাফের char s[2]পরিবর্তে ব্যবহার করবেন না কেন malloc? Ing mallocালাইয়ের ফেরতের মান যাইহোক সি তে প্রয়োজনীয় নয়।
ক্যাডানিলুক

@ নীল যদি আপনি অংশটির বিষয়ে কথা বলছেন printf("%d%d ", ...)তবে বিন্যাসটির পরিবর্তে %xকেবলমাত্র 0এর পরিবর্তে কেবল ফিরে আসে 00এবং এগুলি ফাঁকা করে না।
ফিন রাইমেন্ট 23

নিবন্ধন করুন আমি এটা ভাবিনি। এখনই উত্তর সম্পাদনা করা হচ্ছে।
ফিন রাইমেন্ট 23

না, আমার এখনও বিষয়ে কথা বলছি scanf
নীল

1

GNU সেড, 209 + 1 (আর পতাকা) = 210 বাইট

1{h
s:.*:,00 FF,01 F4,02 B6,03 D7,04 40,05 00,06 00,07 A4,08 F0,09 00,0A FF,0B 0D,0C 9C,0D 21,0E 65,0F C4,10 02,11 28,12 90,13 E7,14 D6,15 A5:
H;d}
G;s:\n(.*)\n.*(,\1.*):\n\2:
s:(.*)\n(.*,\1 ..).*:\2:
s:,..::g

এটি অনলাইন চেষ্টা করুন! আউটপুটে একটি শীর্ষস্থানীয় স্থান উপস্থিত, আমি আশা করি এটি অনুমোদিত allowed

উদাহরণ চালান:

me@LCARS:/PPCG$ echo -e "06\n0F" | sed -rf table_lookup.sed
 00 A4 F0 00 FF 0D 9C 21 65 C4
me@LCARS:/PPCG$ echo -e "13\n13" | sed -rf table_lookup.sed
 E7

ব্যাখ্যা: সঞ্চিত 22 হেক্সাডেসিমাল মানগুলি ওপির উদাহরণ থেকে একই

value | FF F4 B6 D7 40 00 00 A4 F0 00 FF 0D 9C 21 65 C4 02 28 90 E7 D6 A5
-------------------------------------------------------------------------
index | 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15

শুরু এবং শেষ সূচকগুলি পৃথক লাইনে পড়ে। আউটপুটটি সেই সূচী পরিসীমা (অন্তর্ভুক্ত) এর সারণির মানগুলির সাথে একক লাইন। অপরিজ্ঞাত ইনপুটটি একাধিক লাইন অবৈধ আউটপুট লিখবে।

# store START index in hold space
1{h
# generate the table
s:.*:,INDEX1 VALUE1,INDEX2 VALUE2,°°°:
# append table to hold space and delete pattern space
H;d}
# read END index, append hold space (pattern space format is: END\nSTART\nTABLE)
G
# delete table entries up to, but excluding, the START index (END\nTABLE')
s:\n(.*)\n.*(,\1.*):\n\2:
# delete table entries starting from, but excluding, the END index (TABLE'')
s:(.*)\n(.*,\1 ..).*:\2:
# remove the indexes and print (implicitly) the resulting values
s:,..::g

1

পিএইচপি, 106 105 104 96 + 2 বাইট

eval($s='for($a=a;$a++<c;)$$a=hexdec($argv[++$i]);while($b<=$c)printf("%02X ",ord($s[$b++]));');

অথবা

eval($s='for($a=a;$a++<c;)$$a=hexdec($argv[++$i]);');while($b<=$c)printf("%02X ",ord($s[$b++]));

সাথে চালানো php -nr '<code>' <lowindex> <highindex>; কোডে একক উদ্ধৃতি এড়ান।
... অথবা এটি অনলাইন পরীক্ষা

dechex ইনপুটকে হেক্সাডেসিমাল স্ট্রিং হিসাবে ব্যাখ্যা করতে হবে যতক্ষণ না অক্ষর হেক্স ডিজিট,
0 যদি ইনপুট অন্য কোনও কিছু দিয়ে শুরু হয়।

প্রথম মান দ্বিতীয় থেকে বড় হলে কিছুই প্রিন্ট করে না।

নির্বাচিত মান:

00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15
-----------------------------------------------------------------
66 6F 72 28 24 61 3D 61 3B 24 61 2B 2B 3C 63 3B 29 24 24 61 3D 68

(সম্পাদিত কোডের প্রথম 22 এসকি কোড)

অথবা

for($a=a;$a++<c;)eval($s='$$a=hexdec($argv[++$i]);');while($b<=$c)printf("%02X ",ord($s[$b++]));

এই মান সহ:

00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15
-----------------------------------------------------------------
24 24 61 3D 68 65 78 64 65 63 28 24 61 72 67 76 5B 2B 2B 24 69 5D 

উত্তরগুলি সাধারণত খণ্ডকে অন্তর্ভুক্ত করে <?php?
ফিন রায়মেন্ট

@ ফ্রাইমেন্ট আপনি ব্যবহার না করলে -r। এবং যদি আমার এটি কোনও ফাইলে সঞ্চয় করতে হয় তবে আমি সংক্ষিপ্ত ওপেন ট্যাগটি ব্যবহার করি <?
টাইটাস

ধ্রুবক a, zএবং ProgramingPuzles_CGolfঅপরিশোধিত। কোথায় ProgramingPuzles_CGolfযাহাই হউক না কেন থেকে এসেছে? : /
ফিন রায়মেন্ট

নিবন্ধন করুন stderrআপনি /dev/nullযদি তাদের পছন্দ না করেন তবে এটিকে পুনরাবৃত্তি করুন। পিএইচপি স্ট্রিংগুলিতে অপরিজ্ঞাত স্থায়ীদের মূল্যায়ন করে।
টাইটাস

তবে সিন্ট্যাক্স ত্রুটি হিসাবে তাদের উপস্থিতি, আমি প্রোগ্রামটি চালাতে পারছি না।
ফিন রাইমেন্ট

1

অ্যাপল II 6502 সমাবেশ, 75 বাইট

বাইট কোড:

A9 46 85 36 A9 10 85 37 A0 00 98 20 DA FD A9 A0 
20 ED FD C0 42 D0 F3 20 93 FE A2 FC 20 1B FD 9D 
04 01 E8 D0 F7 86 31 A9 8D 8D 04 02 20 A7 FF B5 
3C 0A 75 3C 95 3C CA 10 F6 A6 3D BD 05 02 20 ED 
FD E8 E4 3C D0 F5 99 05 02 C8 60

disassembly:

  LDA    #<+
  STA    CSWL
  LDA    #>+
  STA    CSWH    ;redirect stdout
  LDY    #$00
- TYA
  JSR    PRBYTE  ;print number
  LDA    #$A0    ;space
  JSR    COUT    ;print space
  CPY    #$42    ;22*3
  BNE    -
  JSR    SETVID  ;restore stdout
  LDX    #$FC
- JSR    KEYIN   ;fetch a key
  STA    $0104,X ;store to $200+
  INX
  BNE    -       ;four keys
  STX    MODE    ;set internal flags
  LDA    #$8D
  STA    $0204   ;set key delimiter
  JSR    GETNUM  ;convert keys to hex values
- LDA    A1L,X   ;fetch value
  ASL
  ADC    A1L,X   ;multiply by 3
  STA    A1L,X   ;store value
  DEX
  BPL    -       ;both inputs
  LDX    A1H     ;first input
- LDA    $0205,X ;fetch from index
  JSR    COUT    ;print character
  INX
  CPX    A1L
  BNE    -       ;until second input
+ STA    $0205,Y ;fall through to save a byte
  INY
  RTS

এটি মেমরির একটি অ্যারে গঠন করে যা আউটপুটটির মতো লাগে। নির্বাচিত মানগুলি হ'ল:

00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15
-----------------------------------------------------------------
00 03 06 09 0C 0F 12 15 18 1B 1E 21 24 27 2A 2D 30 33 36 39 3C 3F

ইনপুট সেট করতে ব্যবহারকারী চারটি টিপুন।


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