বিট বয়নটি ভিজ্যুয়ালাইজ করুন


32

গুপ্ত প্রোগ্রামিং ভাষার অশুভের বাইট মানগুলিতে একটি আকর্ষণীয় অপারেশন রয়েছে যা এটি "বুনন" বলে aving এটি মূলত বাইটের আটটি বিটের ক্রমবিন্যাস (প্যাটার্নটি প্রতিসাম্য হিসাবে আমরা কী গণনা শুরু করি তা বিবেচনা করে না):

  • বিট 0 বিট 2 এ সরানো হয়েছে
  • বিট 1 বিট 0 এ সরানো হয়েছে
  • বিট 2 বিট 4 এ সরানো হয়েছে
  • বিট 3 বিট 1 এ সরানো হয়েছে
  • বিট 4 বিট 6 এ সরানো হয়েছে
  • বিট 5 বিট 3 এ সরানো হয়েছে
  • বিট 6 বিট 7 এ সরানো হয়েছে
  • বিট 7 বিট 5 এ সরানো হয়েছে

সুবিধার জন্য, এখানে আদেশের দুটি আরও উপস্থাপনা রয়েছে। একটি চক্র হিসাবে:

(02467531)

এবং ম্যাপিংয়ের জোড়ার তালিকা হিসাবে:

[[0,2], [1,0], [2,4], [3,1], [4,6], [5,3], [6,7], [7,5]]

আপনার টাস্ক এই বিন্যাস ঠাহর করা, বক্স অঙ্কন টি অক্ষর ব্যবহার করা হয় , , , , , , (ইউনিকোড কোড পয়েন্ট: U + এ 2500, U- + + 2502, U- + + 250C, U- + + 2510, U- + + 2514, U- + + 2518, U- + + 253C)। এই দৃশ্যটির নিম্নলিখিত সীমাবদ্ধতাগুলি পূরণ করা উচিত:

প্রথম এবং শেষ লাইনটি হ'ল:

0 1 2 3 4 5 6 7

এর মধ্যে, আপনি নিজের বাক্সের অঙ্কন অক্ষরের সাথে মানিয়ে নিতে প্রতিটি 15 টির মতো অক্ষর ব্যবহার করতে পারেন (আপনার কমপক্ষে 4 টি লাইনের প্রয়োজন হবে)। লাইনগুলি প্রথম সারির একটি অঙ্কের নীচে উল্লম্বভাবে শুরু করা উচিত এবং শেষ সারিতে সংশ্লিষ্ট অঙ্কের উপরে উল্লম্বভাবে শেষ হওয়া উচিত। আটটি লাইন অবশ্যই সংযুক্ত থাকতে হবে এবং কেবল তার মধ্য দিয়েই পার হতে পারে (যা সর্বদা ক্রসিং, কখনও স্পর্শকারী দুটি বাঁক লাইন নয়)। লাইনগুলির সঠিক পাথগুলি আপনার উপর নির্ভর করে (এবং একটি বিশেষভাবে গল্ফযোগ্য লেআউট সন্ধান করা এই চ্যালেঞ্জের মূল বিষয়)। একটি বৈধ আউটপুট হবে:

0 1 2 3 4 5 6 7
│ │ └─┼┐│ │ └┐│
└─┼─┐ ││└─┼─┐││
┌─┘ │ ││  │ │││
│ ┌─┼─┘│  │ │││
│ │ │ ┌┼──┘ │││
│ │ │ │└┐ ┌─┼┼┘
│ │ │ │ │ │ │└┐
0 1 2 3 4 5 6 7

যাইহোক, অন্য কোনও লেআউট যা সঠিকভাবে সঠিক সংখ্যাগুলি সংযুক্ত করে তাও ঠিক। দয়া করে আপনার উত্তরে আপনার নির্বাচিত আউটপুট দেখান।

আপনি কোনও প্রোগ্রাম বা ফাংশন লিখতে পারেন এবং কোনও ইনপুট গ্রহণ করবেন না। ডায়াগ্রামটি হয় STDOUT (অথবা নিকটতম বিকল্প) অথবা স্ট্রিং বা স্ট্রিংগুলির তালিকার ফাংশন রিটার্ন মান হিসাবে (প্রতিটি এক লাইনের প্রতিনিধিত্ব করে) হিসাবে আউটপুট করুন।

স্ট্যান্ডার্ড নিয়মগুলি প্রয়োগ হয়, তাই সংক্ষিপ্ততম কোড (বাইটে) জয়ী হয়।


1
ইউনিকোড সমর্থন করে না এমন ভাষার জন্য আমরা কি অন্যান্য চিহ্ন ব্যবহার করতে পারি?
flawr

3
এই চ্যালেঞ্জ মূলত কপি-পেস্ট প্রদান আউটপুট ... কিভাবে একটি বিন্যাস গ্রহণ সম্পর্কে নিচে boils 01234567একটি ইনপুট হিসাবে এবং তারপর সংযোগ যে করতে 01234567? যাতে আপনার নিজের লিঙ্কগুলি বের করতে হয়? বিশেষত গল্ফ করার জন্য এটি একটি কার্যকরীভাবে আরও চ্যালেঞ্জিং কাজ হবে।
shooqie

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

2
কেউ কেউ মন্দ সমাধান করতে হবে।
আরকে

3
@ হোলজার আমরা এটি না করার একটি ভাল কারণ রয়েছে: তারপরে লোকেরা কেবল স্ট্রিংটিকে বৃহত ইউনিকোড অক্ষরে প্যাক করে এনকোড করতে পারত, যা একক চরিত্রে বিভিন্ন বাইটের মূল্যবান তথ্য সঞ্চয় করতে পারে। উদাহরণ।
মার্টিন ইন্ডার

উত্তর:


13

আসলে, 69 বাইট

"│ ┌┘│ │└┐ │└┐└┐""┌┘└┼┐└┼┐ └┼┐└┐""└┼┐│└┐┌┘└┐┌┘│""┌┼─┘"3*"│┌┘"+8r' j;)

এটি অনলাইন চেষ্টা করুন! (অনলাইন দোভাষীটিতে প্রান্তিককরণটি কিছুটা বিশৃঙ্খলাবদ্ধ)

প্রকৃতপক্ষে এখানে একটি বিশাল সুবিধা রয়েছে - বাক্সের সমস্ত অঙ্কন অক্ষর সিপি 437 এ রয়েছে, সুতরাং সেগুলি কেবল প্রতিটি বাইট। যদিও প্রতিটি চরিত্রের প্রয়োজন হয় তাত্ত্বিকভাবে 4 বিটগুলিতে এনকোড করা যায় (যেহেতু কেবলমাত্র 9 টি অনন্য অক্ষর রয়েছে), তবে স্ট্রিংটি সংকোচনের মাধ্যমে সংরক্ষণ করা 31 বাইটটি আসলে খুব দরিদ্র স্ট্রিং প্রক্রিয়াজাতকরণের কারণে হারিয়ে যাবে। এর অর্থ হ'ল যে কোনও 8x4 কনফিগারেশনের ফলাফল একই স্কোর। 8x4 যেহেতু (উল্লম্বভাবে) সংক্ষিপ্ততম কনফিগারেশন হিসাবে উপস্থিত বলে মনে হচ্ছে, এটি সর্বোত্তম।

মার্টিনকে 3 বাইটের জন্য ধন্যবাদ!

আরও 4 টি বাইটের জন্য টিমমিডকে ধন্যবাদ!

ব্যাখ্যা:

"│ ┌┘│ │└┐ │└┐└┐""┌┘└┼┐└┼┐ └┼┐└┐""└┼┐│└┐┌┘└┐┌┘│""┌┼─┘"3*"│┌┘"+8r' j;)
"│ ┌┘│ │└┐ │└┐└┐""┌┘└┼┐└┼┐ └┼┐└┐""└┼┐│└┐┌┘└┐┌┘│""┌┼─┘"3*"│┌┘"+         push the individual lines, using string multiplication to shorten repeated sections
                                                              8r' j   push the string "0 1 2 3 4 5 6 7" (range(8), join on spaces)
                                                                   ;)  make a copy and move it to the bottom of the stack

1
প্রযুক্তিগতভাবে অন্যান্য উত্তরগুলির মধ্যে অনেকগুলি সিঙ্গেল-বাইট এনকোডিংগুলি ব্যবহার করতে পারে পাশাপাশি কেবলমাত্র তাদের ভাষার সমর্থন করে এমন একক-বাইট এনকোডিং (যদি থাকে), একই বাইটগুলি আপনার হিসাবে আউটপুট করে এবং বলে "আউটপুট সিপি 437-এনকোডড" , তবে দেখে মনে হচ্ছে কেউ এটিকে গ্রহণ করেনি। ¯ \ _ (ツ) _ / ¯
মার্টিন এন্ডার

21

পাওয়ারশেল ভি 2 +, 172 153 148 145 142 131 123 বাইট (81 টি চর)

($a=""+0..7)
$b='┌┘'
"│$b$('┌┼─┘'*3)
└┼┐$('│└─┐'*3)
$b$('└┼─┐'*3)│
│ $($b*6)│"
$a

আমি ইনলাইন কোড ব্লক ব্যবহার করে বেশ কয়েকটি ভেরিয়েবলের প্রয়োজনীয়তা বাদ দিয়ে আরও বয়নটি গল্ফ করেছি। এটি সম্ভবত অনুকূল কয়েকটি বাইটের মধ্যে রয়েছে।

আমরা স্পেসগুলির সাথে একত্রিত হয়ে $aযাওয়া সীমার সমান সেট করে শুরু করি 0..7। এটি কারণ $ofsঅ্যারের জন্য ডিফল্ট (আউটপুট ফিল্ড বিভাজক) একটি স্থান, তাই যখন অ্যারেরটি স্ট্রিং করা হয় ""+(এর মতো অপারেটরের সাথে, পাওয়ারশেল ডান হাতের অবজেক্টটি স্পষ্টতই বাম-হাতের বস্তু হিসাবে কাস্ট করার চেষ্টা করবে), ফলাফলটি পরিসীমা থেকে পৃথক পৃথক।

এটি পেরেন্সে আবদ্ধ হয়, যা পাইপলাইনে ফলাফল যুক্ত করে। তারপরে আমরা একটি হেল্পার ভেরিয়েবল সেটআপ করি, তারপরে $bযথাযথ পরিবর্তনশীল (আক্ষরিক নিউলাইনগুলির সাথে বিভক্ত) সহ চারটি আউটপুট আউটপুট এবং তারপরে পুনরাবৃত্তি বিভাগগুলির জন্য ইনলাইন কোড-ব্লক ব্যবহার করি $a। চারটি লাইন এবং $aপাইপলাইনে স্থাপন করা হয়, এবং আউটপুট শেষে অন্তর্ভুক্ত থাকে।

PS C:\Tools\Scripts\golfing> .\visualize-bit-weaving.ps1
0 1 2 3 4 5 6 7
│┌┘┌┼─┘┌┼─┘┌┼─┘
└┼┐│└─┐│└─┐│└─┐
┌┘└┼─┐└┼─┐└┼─┐│
│ ┌┘┌┘┌┘┌┘┌┘┌┘│
0 1 2 3 4 5 6 7

1
নীচে পিছনে পিছনে যেতে চমৎকার কাজ। :)
মার্টিন ইন্ডার

11

জাভাস্ক্রিপ্ট ES6, 168 167 বাইট

সম্পাদনা: ওফফ, দেখা গেল আমি ফাংশনের অংশে |ইউ + 2502 এর পরিবর্তে পাইপ চর ব্যবহার করছি , বাইট গণনা আপডেট করেছি।

_=>((n=`0 1 2 3 4 5 6 7 `)+[...`6452301`].map(i=>`${(d=n=>`│ `.repeat(n))(i)}└┐│ ${r=d(6)}┌┼┘ ${r}│└┐ ${d(6-i)}`).join``+n).match(/.{16}/g).join`
`

একটি স্ট্রিং প্রদান করে।

আউটপুট:

0 1 2 3 4 5 6 7 
│ │ │ │ │ │ └┐│ 
│ │ │ │ │ │ ┌┼┘ 
│ │ │ │ │ │ │└┐ 
│ │ │ │ └┐│ │ │ 
│ │ │ │ ┌┼┘ │ │ 
│ │ │ │ │└┐ │ │ 
│ │ │ │ │ └┐│ │ 
│ │ │ │ │ ┌┼┘ │ 
│ │ │ │ │ │└┐ │ 
│ │ └┐│ │ │ │ │ 
│ │ ┌┼┘ │ │ │ │ 
│ │ │└┐ │ │ │ │ 
│ │ │ └┐│ │ │ │ 
│ │ │ ┌┼┘ │ │ │ 
│ │ │ │└┐ │ │ │ 
└┐│ │ │ │ │ │ │ 
┌┼┘ │ │ │ │ │ │ 
│└┐ │ │ │ │ │ │ 
│ └┐│ │ │ │ │ │ 
│ ┌┼┘ │ │ │ │ │ 
│ │└┐ │ │ │ │ │ 
0 1 2 3 4 5 6 7 

অতিরিক্ত: @ টিমমিডের পদ্ধতিটি ব্যবহার করে আমার কাছে আরও একটি 167 বাইট সমাধান রয়েছে:

(n=`0 1 2 3 4 5 6 7
`,a=`│┌┘ `,b=`└┼─┐`,d=`┌┼─┘`,f=` │└┐`)=>[n,a,a,a,a,`
`,b,b,b,`└┼┐
┌┘`,d,d,d,`│
│`,f,f,f,` │
`,n].join``

8

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

f=
_=>`0
2525252
1 1 1 1
24242423525252 3 1 1 1 3 242424
0`.replace(/\d/g,d=>`0 1 2 3 4 5 6 7,└┼┐,┌┘,│
│,│ , │`.split`,`[d])  
;
o.textContent=f();
<pre id=o></pre>

বেল-রিঞ্জার হিসাবে আমি অবিলম্বে এটিকে প্লেইন হান্ট মেজরের প্রথম দুটি সারি হিসাবে স্বীকৃতি দিয়েছি (নোট করুন যে লিঙ্কযুক্ত চিত্রটি 0-7 এর পরিবর্তে 1-8 ব্যবহার করে)।


4

পাইথ - 119 104 100 81 বাইট

অত্যন্ত সহজ। (এটি আসলে এবার বাইটস)।

js[KjdU8cX."sz¨ú¨ãÆhÆ?\ÕüÓ¼xFNøa"_G"│┌┘└┼─┐ "15K

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

আমি @ টিমিডির আউটপুটটিও চুরি করেছি:

0 1 2 3 4 5 6 7
│┌┘ │┌┘ │┌┘ │ │
└┼─┐└┼─┐└┼─┐└┐│
┌┘┌┼─┘ └┐│┌┼─┼┘
│ │└┐ ┌─┼┘│└┐└┐
0 1 2 3 4 5 6 7

3

এমএস-ডস ব্যাচ, 136 বাইট

@echo 0 1 2 3 4 5 6 7
@echo ³ÚÙ ³ÚÙ ³ÚÙ ³ÚÙ
@echo ÀÅÄ¿ÀÅÄ¿ÀÅÄ¿ÀÅ¿
@echo ÚÙÚÅÄÙÚÅÄÙÚÅÄÙ³
@echo ³ ³À¿ ³À¿ ³À¿ ³
@echo 0 1 2 3 4 5 6 7

@ টিমিডির আউটপুট ব্যবহার করা এটি উইন্ডোজ ব্যাচেও কার্যকর হতে পারে তবে আমার কোড পৃষ্ঠাটি সিপি 850 রয়েছে, সিপি 437 নয়।


আপনি সিপি 437 বা সিপি 850 ব্যবহার না করেই উইন্ডোজেও কাজ করে।
হলগার

@ হোলজার হু, আমি অনুমান করি যেহেতু আমার এটি চেষ্টা করা উচিত ছিল, কেবল দেখার জন্য!
নিল

3

ম্যাটল্যাব / অষ্টাভ, 112 109 বাইট

a='0 1 2 3 4 5 6 7';d=['└┐│ ';'┌┼┘ ';'│└┐ '];e=repmat('│ ',3,1);[a;d d d d;e d d d e;a]

আউটপুট:

0 1 2 3 4 5 6 7
└┐│ └┐│ └┐│ └┐│
┌┼┘ ┌┼┘ ┌┼┘ ┌┼┘
│└┐ │└┐ │└┐ │└┐
│ └┐│ └┐│ └┐│ │
│ ┌┼┘ ┌┼┘ ┌┼┘ │
│ │└┐ │└┐ │└┐ │
0 1 2 3 4 5 6 7

আমার কোড @ ডেনড্রোবিয়াম এবং @ নীলের আউটপুটগুলির উপর ভিত্তি করে ।



বিজ্ঞপ্তি: লিঙ্ক করা মন্তব্য মুছে ফেলা হয়েছে। এটি ওপি বলেছিল যে আপনার আউটপুটটি @ টিমিডি-র চেয়ে বেশি গল্ফযোগ্য।
এরিক আউটগল্ফার

3

/// , 112 বাইট (100 টি চর)

/8/0 1 2 3 4 5 6 7//9/│//A/└┐//B/┌┼┘/8/C/9 A9 A9 A9//D/9A 9A 9A 9/
AC
B B B B
DA
C 9
9 B B B 9
9 D
8

-৩ বাইটের জন্য @ মার্টিনইেন্ডারকে ধন্যবাদ!
-মাইটিনেন্ডার -9 বাইটের জন্য ধন্যবাদ!
15-চার্জ বিধি নিষ্ক্রিয় করার জন্য @ মার্টিনইেন্ডার (ওপি) ধন্যবাদ

ব্যবহার @ TimmyD এর @ মার্কো এর আউটপুট

0 1 2 3 4 5 6 7 7
└┐│ └┐│ └┐│ └┐│
┌┼┘ ┌┼┘ ┌┼┘ ┌┼┘
│└┐ │└┐ │└┐ │└┐
│ └┐│ └┐│ └┐│ │
│ ┌┼┘ ┌┼┘ ┌┼┘ │
│ │└┐ │└┐ │└┐ │
0 1 2 3 4 5 6 7 7


0

পাইথন 3, 209 বাইট

lambda s="0 1 2 3 4 5 6 7\n":s+"│┌┘ │┌┘ │┌┘ │ │\n└┼─┐└┼─┐└┼─┐└┐│\n┌┘┌┼─┘ └┐│┌┼─┼┘\n│ │└┐ ┌─┼┘│└┐└┐\n"+s

একটি স্ট্রিং প্রদান করে।

2 বাইট সংরক্ষণের জন্য @ মেগোকে ধন্যবাদ!

চরিত্রের শরীরের ক্রেডিটগুলি @ টিমমিডে যায়!


2
আপনার সেই a,অংশের দরকার নেই , এটি পরামিতি সহ কল ​​করার প্রয়োজনীয়তাও সরিয়ে ফেলবে।
মেগো

0

স্প্রেটস , 99 বাইট (87 টি অক্ষর)

$8
AC
BE
DA
C 9
9E 9
9 D
8$E B B B$D9A 9A 9A 9$C9 A9 A9 A9$B┌┼┘$A└┐$9│$80 1 2 3 4 5 6 7

@ মার্কোর আউটপুট ব্যবহার করুন (প্রতি 16 তম অক্ষরকে একটি নতুন লাইনের সাথে প্রতিস্থাপন করুন (রেজেক্স: (.{15}).-> \1\n))।

0 1 2 3 4 5 6 7 7
└┐│ └┐│ └┐│ └┐│
┌┼┘ ┌┼┘ ┌┼┘ ┌┼┘
│└┐ │└┐ │└┐ │└┐
│ └┐│ └┐│ └┐│ │
│ ┌┼┘ ┌┼┘ ┌┼┘ │
│ │└┐ │└┐ │└┐ │
0 1 2 3 4 5 6 7 7


0

বাশ + জিএনইউ সেড, 140 বাইট

sed 'h
s/$/nxxxacnb b b bnyyycanc xxxcnc b b b cnc yyyc/
:
s/x/ac /
s/y/ca /
s/a/└┐/
s/b/┌┼┘/
t
y/cn/│\n/
G'<<<'0 1 2 3 4 5 6 7'

আউটপুট:

0 1 2 3 4 5 6 7
└┐│ └┐│ └┐│ └┐│
┌┼┘ ┌┼┘ ┌┼┘ ┌┼┘
│└┐ │└┐ │└┐ │└┐
│ └┐│ └┐│ └┐│ │
│ ┌┼┘ ┌┼┘ ┌┼┘ │
│ │└┐ │└┐ │└┐ │
0 1 2 3 4 5 6 7

@ টিমমিড এর আউটপুট ব্যবহার করে : 142 বাইট

sed 'h
s/$/npbcccnsurdddnbeeepnp bbbbbbp/
:
s/b/qt/
s/c/quot/
s/d/psor/
s/e/suor/
t
y/nopqrstu/\n─│┌┐└┘┼/
G'<<<'0 1 2 3 4 5 6 7'

আউটপুট:

0 1 2 3 4 5 6 7
│┌┘┌┼─┘┌┼─┘┌┼─┘
└┼┐│└─┐│└─┐│└─┐
┌┘└┼─┐└┼─┐└┼─┐│
│ ┌┘┌┘┌┘┌┘┌┘┌┘│
0 1 2 3 4 5 6 7

0

টিসিএল , 205 বাইট

puts "[set B "0 1 2 3 4 5 6 7"]
│┌┘ │┌┘ │┌┘ └┐│
└┼┐ └┼─┐└┼──┐││
┌┘└─┐│ └┐│┌─┼┼┘
│ ┌─┼┘┌─┼┘│ │└┐
$B"

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

আউটপুট

0 1 2 3 4 5 6 7 7
└┐│ │┌┘ │┌┘ └┐│
└┼─┐└┼──┐││ └┼─┐└┼──┐││
└┐│┌─┼┼┘ └┐│┌─┼┼┘
│└┐ ┌─┼┘┌─┼┘│ │└┐
0 1 2 3 4 5 6 7 7

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