স্ব-বৈধকরণ ত্রিভুজাকার চেকারবোর্ড প্রোগ্রাম


10

একটি চেকবোর্ড প্রোগ্রাম হ'ল একটি প্রোগ্রাম যেখানে প্রতিটি স্বতন্ত্র চরিত্রের অর্ডিনাল মান লাইন টার্মিনেটর (যা কোনও স্ট্যান্ডার্ড লাইন-এন্ডিংস হতে পারে) বাদ দিয়ে এমনকি বিজোড় থেকে আলাদা করে তোলে।

ত্রিভুজাকার প্রোগ্রামটি এমন একটি প্রোগ্রাম যেখানে প্রতিটি লাইনে পূর্ববর্তী রেখার চেয়ে একটি অতিরিক্ত অক্ষর থাকে, প্রথম লাইনে একটি বর্ণ থাকে। আপনার খালি ইনপুট হ্যান্ডেল করার দরকার নেই।

আপনার কাজটি এমন একটি প্রোগ্রাম তৈরি করা যা যাচাই করে যে প্রদত্ত ইনপুটটি সেই মানদণ্ডগুলিকে মেনে চলে এবং আউটপুটগুলি / সত্যায়িত কিছু প্রত্যাবর্তন করে যদি প্রোগ্রামটি মানদণ্ডগুলি পূরণ করে, বা অন্যথায় মিথ্যা কিছু করে।

আপনার প্রোগ্রাম অবশ্যই এই মানদণ্ড পূরণ করতে হবে।

বৈধ প্রোগ্রামগুলির উদাহরণ

G
`e
@u^
5r{B

^
cB
+$C
VA01

বিধি

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

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

1
সমান / বিজোড় উভয় অনুভূমিক এবং উল্লম্ব উভয় পরিবর্তন? আমি "চেকারবোর্ড" থেকে হ্যাঁ ধরে নিয়েছি, তবে আপনি কোথায় বলছেন তা আমি দেখতে পাচ্ছি না।
টন হসপেল

@ ডোমহাস্টিংস এক সপ্তাহ ঠিক আছে বলে মনে হচ্ছে। কিছু দিনের পরে যদি আপনি কোনও প্রতিক্রিয়া না পান তবে কারও আরও কোনও মন্তব্য থাকলে আপনি আড্ডায় জানতে চাইতে পারেন।
মার্টিন ইন্ডার

1
@TonHospel আমার মূল উদাহরণ এটা করেছে, কিন্তু এটা আমার বর্ণনা দিয়ে অসঙ্গতি, তাই এই বাস্তবায়নের, না, এটা হওয়া উচিত: E\nOE\nOEO। আশা করি এইটি কাজ করবে!
ডম হেস্টিংস

2
আমার মতামত: উত্তরগুলি ধরে নেওয়া যাক ইনপুটটি কোনও নতুন লাইন দিয়ে শুরু হবে না বা শেষ হবে না।
লিন

উত্তর:


3

স্ট্যাক্স , 26 বাইট

L
Y$
i:-
 {2%
*OFyF
%vi =*

অনলাইনে পরীক্ষার মামলা চালান

আমাকে 3 জাঙ্ক চরিত্রের পরিচয় করিয়ে দিতে হয়েছিল। iসমস্ত লুপ কন্সট্রাক্টরের বাইরে থাকাকালীন কোনও বিকল্প নেই। সর্বদা একটি অপ-বিকল্প হয়। Oস্ট্যাকের শীর্ষের নীচে 1 টি টাক করে তবে প্রোগ্রামটিতে মানটি ব্যবহৃত হয় না।

LY      move input lines into a list and store in Y register
$       flatten
i       no-op
:-      get pairwise differences
{2%*OF  foreach delta, mod by 2, and multiply, then tuck a 1 under the top of stack
yF      foreach line in original input do...
  %v    subtract 1 from length of line
  i=    is equal to iteration index?
  *     multiply

এটি চালান


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

8

সি (জিসিসি), 189 বাইট

j
;l
;b;
d;f␉
(char
␉*␉t) 
{b=*␉t%
2;for␉(␉
j=d=0;j=j
+ 1,␉l=j+ 
1,␉*␉t; ) {
for␉(;l=l- 1
 ;t=t+ 1 )b= 
!b␉,␉d=d+ !(␉*
␉t␉*␉(␉*␉t- 10)
*␉(␉*␉t%2-b) ) ;
d␉|=*␉t- 10;t=t+ 
1 ; }b= !d; } ␉ ␉ 

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

একটি ট্যাব চরিত্র উপস্থাপন করে (আমি দুঃখিত)। নোট করুন যে এখানে বেশ কয়েকটি ট্রেলিং স্পেস / ট্যাব রয়েছে (আমি বেশি দুঃখিত)। অক্ষর অক্ষর সহ আসলটি ভিমে সহ সেরা দেখা হয়:set tabstop=1 (শব্দটি আমি কতটা দুঃখিত তা প্রকাশ করতে পারে না)।

এটি এমন একটি ফাংশন (যাকে বলা হয় fযা এটি অবাক হওয়া থেকে তাত্ক্ষণিকভাবে স্পষ্ট নয়) যা একটি আর্গুমেন্ট হিসাবে স্ট্রিং নেয় এবং হয় হয় 0বা ফেরত দেয় 1

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

এখানে মৌলিক ধারণা বাক্য যে অগত্যা ফরম্যাট (বিরতি এড়াতে হয় ++, +=, return, ইত্যাদি)। অলৌকিকভাবে গুরুত্বপূর্ণ কিওয়ার্ডগুলি অনুসন্ধানের মত for, charএবং while(যা আমি ব্যবহার শেষ না) পর্যায়ক্রমে সমতা নিয়ম মাপসই ঘটে। তারপরে আমি বাকী নিয়মগুলিকে ফিট করার জন্য স্পডস (এমনকি সমতা) এবং ট্যাবগুলি (বিজোড় প্যারিটি) প্যাডিং হিসাবে ব্যবহার করেছি।


1
আমি সি তে কোন সমাধান দেখতে আশা করিনি!
ডম হেস্টিংস

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

4

হাস্কেল , 1080 1033 বাইট

;
f=
 g 
ij=f
a =hi
hi = g
hij= ij
g ' ' =0
g '"' =0;
 g '$' =0;
 g '&' =0-0
g '(' =0-0-0
g '*' =0-0-0;
 g ',' =0-0-0;
 g '.' =0-0-0-0
g '0' =0-0-0-0-0
g '2' =0-0-0-0-0;
 g '4' =0-0-0-0-0;
 g '6' =0; g '8' =0
g ':' =0; g '<' =0-0
g '>' =0; g '@' =0-0;
 g 'B' =0; g 'D' =0-0;
 g 'F' =0; g 'H' =0-0-0
g 'J' =0; g 'L' =0-0-0-0
g 'N' =0; g 'P' =0-0-0-0;
 g 'R' =0; g 'T' =0-0-0-0;
 g 'V' =0; g 'X' =0-0-0-0-0
g 'Z' =0; g '^' =0; g '`' =0
g 'b' =0; g 'd' =0; g 'f' =0;
 g 'h' =0; g 'j' =0; g 'l' =0;
 g 'n' =0; g 'p' =0; g 'r' =0-0
g 't' =0; g 'v' =0; g 'x' =0-0-0
g 'z' =0; g '\92' =0-0; g '|' =0;
 g '~' =0; g y = 1 ;z=0; i(-0)z=z;
 i m('\10':y ) ="y"; ; ; ; ; ; ; ; 
i m(mnmnmnmnm:y ) = i(m - 1 ) y ; ; 
i k m ="y"; ; k i [ ] =01<1010101010;
 k m('\10':y ) = k(m + 1 )(i m y ) ; ;
 k m y =01>10; m o = k 1$'\10':o ; ; ; 
o i('\10':y ) = o i y ; ; ; ; ; ; ; ; ; 
o i(k:y )|g k<i = o(1 - i ) y ; ; ; ; ; ;
 o i(k:y )|g k>i = o(1 - i ) y ; ; ; ; ; ;
 o i [ ] =01<10; o i y =01>10;v=01>10101010
s y|o 1 y = m y|o(-0) y = m y ; s y =v; ; ; 

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

ব্যাখ্যা

এটি হাস্কেলের পক্ষে বেশ আকর্ষণীয় কাজ হয়ে দাঁড়িয়েছে।

সমতা

শুরু করতে আমাদের একটি চরিত্রের একটির বা বিজোড় কোড-পয়েন্ট রয়েছে কিনা তা নির্ধারণের কিছু উপায় প্রয়োজন। কেউ এটি করার স্বাভাবিক উপায়টি হ'ল কোড-পয়েন্টটি পেতে এবং এটি ২ দ্বারা মোড করা However তবে যেহেতু একজন সচেতন হতে পারে, কোনও চরিত্রের কোড-পয়েন্ট পেতে একটি আমদানি প্রয়োজন, যা উত্সের বিধিনিষেধের কারণে এটি হতে পারে না ব্যবহার করা হয়েছে। আরও অভিজ্ঞ হাসকলার পুনরাবৃত্তি ব্যবহার করার কথা ভাববেন। Charএর Enumটাইপক্লাসের অংশ তাই আমরা তাদের পূর্বসূরি এবং উত্তরসূরি পেতে পারি। তবে predএবংsucc উভয়ই অকেজো কারণ তারা বিকল্প বাইট সমতা না করে।

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

বাইটস সমস্যা

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

ব্যবধান সমস্যা

এখন আসল কোড লেখা শুরু করার জন্য আমাদের একক লাইনে বড় আকারের অক্ষর রাখতে সক্ষম হওয়া দরকার। এটি করার জন্য আমি ক্যাপটি লিখেছিলাম:

;
f=
 g 
ij=f
a =hi
hi = g
hij= ij

ক্যাপটি বৈধ হাস্কেল হিসাবে কিছু না করে do আমি প্রাথমিকভাবে এমন সংজ্ঞা তৈরি করার আশা করেছিল যা পরে কোডে আমাদের সহায়তা করবে, তবে তা হয়নি didn't ক্যাপটি তৈরির আরও সহজ উপায়ও রয়েছে, উদাহরণস্বরূপ সাদা স্থান এবং অর্ধিকোলনগুলি, তবে তারা এইভাবে বাইটগুলি সংরক্ষণ করে না তাই আমি এটি পরিবর্তন করতে বিরক্ত করি না।

Hardcoder

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

দ্বিতীয়টি হ'ল যেহেতু আমরা সবসময় একটি লাইন শুরু করতে পারি না gতাই প্রায়শই আমাদের লাইনগুলি কিছুটা ইনডেন্ট করতে হয়। এখন হাস্কেল প্রকৃতপক্ষে ইনডেন্টেশন সম্পর্কে যত্নশীল, তাই এটি এটি সম্পর্কে অভিযোগ করবে। তবে ইন্ডেন্টেড লাইনের আগে শেষ লাইনটি যদি সেমিকোলনে শেষ হয় তবে এটি এটিকে অনুমতি দেবে। কেন? আমার অজ্ঞানতা নেই, তবে এটি কাজ করে। সুতরাং আমাদের কেবলমাত্র সেমিকোলনগুলি লাইনের শেষের দিকে রাখতে হবে।

ফাংশন বিল্ডিং ব্লক

হার্ডকোডারটি শেষ হয়ে গেলে প্রোগ্রামটির শেষের দিকে মসৃণ নৌযান চালানো হয়। আমাদের কয়েকটি সাধারণ ফাংশন তৈরি করতে হবে। প্রথমে আমি একটি সংস্করণ তৈরি করি drop, যার নাম iiএর থেকে আলাদা dropযদি আমরা স্ট্রিংয়ের শেষটি ফেলে দেওয়ার চেষ্টা করি তবে এটি কেবল ফিরে আসে "y"iড্রপ থেকে পৃথক পৃথক যে এটি যদি একটি নতুন লাইন ফেলে দেওয়ার চেষ্টা করে তবে তা ফিরে আসবে "y", এগুলি কার্যকর হবে কারণ পরে যখন আমরা যাচাই করছি যে প্রোগ্রামটি একটি ত্রিভুজ Falseএটি শেষ লাইনে সম্পূর্ণ না হলে আমাদের ফিরে আসতে দেয় , বা কখন একটি লাইন তাড়াতাড়ি শেষ হয়।

kkএনগুলিগুলিTrueএনkএন+ +1False

আমরা তখন জন্য একটি alias করা k, mmঠিক হয় kসঙ্গে 1প্রথম আর্গুমেন্ট, এবং একটি newline দ্বিতীয় যুক্তি আগে লেখা।

পরবর্তী আমাদের আছে ooএকটি সংখ্যা এবং একটি স্ট্রিং লাগে। এটি নির্ধারণ করে যে স্ট্রিং বাইটগুলি (নিউলাইনগুলি উপেক্ষা করে) বিকল্পে gইনপুট নম্বর দিয়ে শুরু করে (আমাদের ব্যবহার করে) বিকল্প রয়েছে কিনা।

শেষ পর্যন্ত আমাদের উভয়টি নিয়েই এটি sচলমান এবং যদি হয় এটি সফল হয় তবে তা পিছিয়ে যায় । এটি উভয় ব্যর্থ হলে এটি কেবল ফিরে আসে । এটি আমরা চাই ফাংশন। এটি নির্ধারণ করে যে ইনপুটটি ত্রিভুজাকার এবং পর্যায়ক্রমে হয়।o10mFalse


1
একটি ত্রিভুজাকার স্ট্রিংটি খালি রেখার সাথে নয়, 1-অক্ষরের লাইন দিয়ে শুরু হয়।
Jakob

@ জ্যাকব আমি মনে করি এটি বোবা তবে এটি ছিল একটি সহজ যথেষ্ট সমাধান।
অ্যাডহক গার্ফ হান্টার

3

05 এ বি 1 ই , 34 26 বাইট

¶
¡D
©€g
´ā´Q
´sJÇÈ
¥Ä{´нP

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

মাল্টলাইন স্ট্রিং হিসাবে ইনপুট নেয় ( "" "এর মধ্যে ইনপুট ) later পরে আসার ব্যাখ্যা।


1
যতক্ষণ না আমি বিধিগুলি ভুল বুঝেছি, প্রোগ্রামটিকে নতুন লাইনের সাথে শুরু করে ইনপুটটিকে বৈধতা দিতে সক্ষম হওয়া দরকার।
এমিগনা

@ এমিগনা আমি মনে করি আপনার প্রোগ্রামটি যদি একটি শীর্ষস্থানীয় নিউলাইন দিয়ে শুরু হয় কেবল তবেই একটি শীর্ষস্থানীয় নিউলাইন যাচাই করতে সক্ষম হতে হবে।
টন হসপেল

এটি সঠিক কিনা আমার কোনও ধারণা নেই (স্পেসিফিকেশনগুলি পড়ার জন্য আমি ভয়াবহ): অনলাইনে চেষ্টা করে দেখুন!
ম্যাজিক অক্টোপাস উরন

@ ম্যাজিক অ্যাক্টপাস ইউরান আপনার উত্তরটি আমার কাছে ঠিক আছে তবে আমি ইনপুটটি নিয়ে ভাবছি: আমাদের কি এটিকে অ্যারে হিসাবে গ্রহণ করার অনুমতি দেওয়া হচ্ছে? আপনার লিঙ্কে, আপনার প্রথম ইনপুটটি একটি খালি স্থান, কোনও নিউলাইন চর নয়।
ক্যাল্ডো

1
আরে, আমি আশা করি এটি আপনার কোডটি খুব বেশি গণ্ডগোল করে না, তবে আপনি শীর্ষস্থানীয় নিউলাইন বৈধতা বাদ দিতে পারেন।
ডম হেস্টিংস 21

1

জাভা 10, 209 বাইট

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

"অক্ষর" ইউনিকোড কোড পয়েন্টকে বোঝায় এমন ব্যাখ্যা দিয়ে ইউটিএফ -8 এর অধীনে সবকিছুই করা হয়।

এই ভিউতে ট্যাবগুলি স্থানগুলির সাথে প্রতিস্থাপন করা হয়।

d
->
{  
long
f= 1,
 h=0 ,
c = - 1
,e ;for 
( byte a:
 d) {var b
=(e = a^10)
<1&e>- 1 ;f=
b?( h ^ f)> 0
?0/0 : f+ 1: f
;h=b?0 :a>-65 ?
h+ 1: h; c =b? c
:c>=0 & ( (c^a )&
1 )<1 ?0/0 :a ; } 
/*1010101010101*/ }

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

হেক্স ডাম্প

সঙ্গে প্রত্যাবর্তন করুন xxd -p -rইউনিক্স উপর।

640a2d3e0a7b20090a6c6f6e670a663d20312c0a09683d30092c0a63203d
202d20310a2c65203b666f72090a28096279746520613a0a096429207b76
617209620a3d2865203d20615e3130290a3c3126653e2d2031203b663d0a
623f280968095e0966293e09300a3f302f30093a09662b20313a09660a3b
683d623f30093a613e2d3635203f0a682b20313a09683b2063203d623f20
630a3a633e3d30092609280928635e612029260a3120293c31203f302f30
093a61203b207d200a2f2a313031303130313031303130312a2f207d0a

Ungolfed

d -> {
    long f = 1, h = 0, c = ~h, e;
    for (byte a : d) {
        var b = (e = a^10) < 1 & e > -1;
        f = b ?
            (h^f) > 0 ? 0/0 : f + 1
            : f
        ;
        h = b ? 0 :
            a > -65 ? h + 1 : h
        ;
        c = b ? c :
            c >= 0 & ((c^a) & 1) < 1 ? 0/0 : a
        ;
    }
}

fবর্তমান লাইনে অক্ষরগুলির প্রত্যাশিত সংখ্যা hহ'ল , বর্তমান লাইনে এখন পর্যন্ত দেখা অক্ষরের সংখ্যা, দেখা cসর্বশেষ বাইট এবং এটি নতুন লাইন bকিনা a

শর্তটি কোনও চরিত্রের প্রথম বাইট a > -65কিনা তা পরীক্ষা করে a। এটি কাজ করে কারণ একক-বাইট (ASCII) অক্ষরগুলি 8-বিট টু এর 11xxxxxxপরিপূরকগুলিতে nonnegative হয় , দীর্ঘ অক্ষরের প্রথম বাইটের বাইনারি ফর্ম থাকে (কমপক্ষে দু'জনের পরিপূরকটিতে) এবং সেই অক্ষরগুলিতে অ-নেতৃস্থানীয় বাইটগুলি হয় ফর্ম 10xxxxxx, সর্বাধিক -65 এর পরিপূরকগুলিতে। ( উত্স )

যখন কোনও অক্ষর ত্রিভুজাকার বা চেকবোর্ড প্যাটার্নটি লঙ্ঘন করে (যেমন একটি নতুন লাইন প্রথম দিকে বা দেরিতে উপস্থিত হয় বা ভুল সমষ্টিটির একটি বাইট প্রদর্শিত হয়), তখন সংশ্লিষ্ট ত্রৈমাসিকের বাম শাখাটি ( fবা নিয়োগের ক্ষেত্রে c) সক্রিয় হয় এবং পদ্ধতিটি একটি গাণিতিক ব্যতিক্রম ছুঁড়ে দেয়।


0

পাইথন 3 (3.4?), 350 বাইট

পাইথন 3. জমা কপি করে প্রিন্ট যেমন হোয়াইটস্পেস সম্পর্কে বিশেষ একটি ভাষার জন্য একটি চতুর চ্যালেঞ্জ 0বা 1মান আউট এবং কিছু ইনপুট জন্য ক্র্যাশ করে। প্রোগ্রামটি আশা করে যে চূড়ান্ত লাইনটি সঠিকভাবে সমাপ্ত হবে, অর্থাত্ একটি নতুন লাইনের চরিত্রের সাথে শেষ হবে। প্রোগ্রামের চূড়ান্ত লাইনটি একইভাবে সমাপ্ত হয়। বাইট প্যারিটি পরীক্ষা করতে ইউটিএফ -8 ব্যবহার করা হয়।

এই ভিউতে ট্যাবগুলি স্থানগুলির সাথে প্রতিস্থাপন করা হয়।

0
i\
= 1
t=(#
 '0'*
 0) ;(
g,) =(#
 open (1
, "w"),) 
k = eval (
'p' + 'rin'
 + 't' ) #01
for  a in (#0
open ( 0) ):#0
#01010101010101
 a = a [:- 1 ] #
 if ( len (a )<i\
or len (a )>i ):[\
k('0' ),1 /0] #0101
 i, t= -~i, t+ a #01
(k( 2-len ({(c^i )&1\
 for  i,c in  eval (#0
 "enu"+"m"+"erate")(#01
 eval ( " byte"+"s")( t#
,' u8' ) ) } ) ) ) #01010

পাইথন ৩.৪.২ নিয়ে আমার জন্য কাজ করে; টিআইও-তে কোনও পাইথন 3-তে কাজ করে না। আমার কাছে টিআইওর দোভাষীদের মধ্যে একটি বাগ বলে মনে হচ্ছে।

হেক্স ডাম্প

সঙ্গে প্রত্যাবর্তন করুন xxd -p -rইউনিক্স উপর।

300a695c0a3d20310a743d28230a202730272a0a093029203b280a672c29
203d28230a206f70656e0928310a2c09227722292c29200a6b203d206576
616c09280a277027202b202772696e270a202b202774272029202330310a
666f7209206120696e092823300a6f70656e092809302920293a23300a23
30313031303130313031303130310a2061203d2061205b3a2d2031205d20
230a2069660928096c656e09286120293c695c0a6f72096c656e09286120
293e6920293a5b5c0a6b2827302720292c31202f305d2023303130310a20
692c09743d202d7e692c09742b2061202330310a286b2809322d6c656e09
287b28635e69202926315c0a09666f720920692c6320696e09206576616c
092823300a0922656e75222b226d222b2265726174652229282330310a20
6576616c092809220962797465222b22732229280974230a2c2720753827
20292029207d202920292029202330313031300a
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.