বনচ – তারস্কি প্যারাডক্স


16

বানাচ ars তারস্কি প্যারাডক্স জানিয়েছে যে, একটি বলকে 3 ‑ মাত্রিক জায়গাতে দেওয়া, আপনি বলটিকে একটি নির্দিষ্ট সংখ্যক পয়েন্ট সাবসেটে বিভক্ত করতে পারেন। পয়েন্টগুলির এই বিচ্ছিন্ন সেটগুলিকে প্রাথমিক বলের দুটি অনুলিপি তৈরি করতে পুনরায় সংযুক্ত করা যেতে পারে। তখন আপনার তাত্ত্বিকভাবে দুটি অভিন্ন বল থাকবে।

পুনরায় অপসারণের প্রক্রিয়াটি কেবলমাত্র পূর্বোক্ত বিন্দু উপগ্রহগুলি সরানো এবং তাদের ঘূর্ণন করে থাকে, যখন তাদের স্পেসিয়াল আকার পরিবর্তন না করে। এটি পাঁচটি হিসাবে পৃথক পৃথক সাবসেটগুলির সাহায্যে করা যেতে পারে।

সংজ্ঞা সেটগুলিতে সংজ্ঞা অনুসারে কোনও সাধারণ উপাদান নেই। কোথায় Aএবং Bপ্রাথমিক বলের কোন দুটি বিন্দু সাব-সেট নির্বাচন মধ্যে সাধারণ উপাদান Aএবং Bএকটি খালি সেট। এটি নীচের সমীকরণে দেখানো হয়েছে।

ল্যাটেক্স উপস্থাপনা

নীচে বিচ্ছিন্ন সেটগুলির জন্য, সাধারণ সদস্যরা একটি খালি সেট গঠন করে।

ল্যাটেক্স উপস্থাপনা


চ্যালেঞ্জ

এমন একটি প্রোগ্রাম লিখুন যা একটি ইনপুট ASCII "বল" নিতে এবং একটি সদৃশ "বল" আউটপুট নিতে পারে।


ইনপুট

এখানে একটি উদাহরণ ইনপুট বল:

      ##########      
   ###@%$*.&.%%!###   
  ##!$,%&?,?*?.*@!##  
 ##&**!,$%$@@?@*@&&## 
#@&$?@!%$*%,.?@?.@&@,#
#,..,.$&*?!$$@%%,**&&#
 ##.!?@*.%?!*&$!%&?## 
  ##!&?$?&.!,?!&!%##  
   ###,@$*&@*,%*###   
      ##########      

প্রতিটি গোলক পাউন্ড চিহ্ন দ্বারা (রূপরেখা করা হয় #) এবং ভরা নিবন্ধ অক্ষরের সাথে: .,?*&$@!%। প্রতিটি ইনপুট 22x10 টি অক্ষর (উচ্চতা অনুসারে প্রস্থ) হবে।


একটি সদৃশ তৈরি করা হচ্ছে

প্রথমে, বলের অভ্যন্তরে প্রতিটি পয়েন্টকে তার সূচকের উপর ভিত্তি করে একটি সংখ্যাযুক্ত বিন্দু দেওয়া হয় .,?*&$@!%। এখানে উপরোক্ত উদাহরণটি দেওয়া হয়েছে, একবার নাম্বার দেওয়া:

      ##########      
   ###7964151998###   
  ##86295323431478##  
 ##5448269677374755## 
#75637896492137317572#
#21121654386679924455#
 ##1837419384568953## 
  ##85363518238589##  
   ###2764574294###   
      ##########      

তারপরে, প্রতিটি বিন্দু একটি করে স্থানান্তরিত হয় (নয়টি এক দিকে যায়):

      ##########      
   ###8175262119###   
  ##97316434542589##  
 ##6559371788485866## 
#86748917513248428683#
#32232765497781135566#
 ##2948521495679164## 
  ##96474629349691##  
   ###3875685315###   
      ##########      

শেষ অবধি, প্রতিটি নতুন পয়েন্টের মানটিকে তার অনুরূপ চরিত্রে ফিরে রূপান্তর করা হবে:

      ##########      
   ###!.@&,$,..%###   
  ##%@?.$*?*&*,&!%##  
 ##$&&%?@.@!!*!&!$$## 
#!$@*!%.@&.?,*!*,!$!?#
#?,,?,@$&*%@@!..?&&$$#
 ##,%*!&,.*%&$@%.$*## 
  ##%$*@*$,%?*%$%.##  
   ###?!@&$!&?.&###   
      ##########      

আউটপুট

এই দুটি বলের পরে এই ফর্মটিতে পাশের পাশাপাশি আউটপুট হয় (নিরক্ষীয় অংশে চারটি স্পেস দ্বারা পৃথক করা):

      ##########                ##########      
   ###@%$*.&.%%!###          ###!.@&,$,..%###   
  ##!$,%&?,?*?.*@!##        ##%@?.$*?*&*,&!%##  
 ##&**!,$%$@@?@*@&&##      ##$&&%?@.@!!*!&!$$## 
#@&$?@!%$*%,.?@?.@&@,#    #!$@*!%.@&.?,*!*,!$!?#
#,..,.$&*?!$$@%%,**&&#    #?,,?,@$&*%@@!..?&&$$#
 ##.!?@*.%?!*&$!%&?##      ##,%*!&,.*%&$@%.$*## 
  ##!&?$?&.!,?!&!%##        ##%$*@*$,%?*%$%.##  
   ###,@$*&@*,%*###          ###?!@&$!&?.&###   
      ##########                ##########      

দ্রষ্টব্য: পয়েন্টের মানগুলি এবং পরবর্তী অক্ষরগুলি স্থানান্তর করা পয়েন্ট সাবটাকে (চরিত্রের গোষ্ঠীকরণ) পুনরায় সংশ্লেষ করার জন্য সঞ্চালিত আবর্তনের প্রতীক।


এটি কি সংলগ্ন হতে হবে? এরা কি একে অপরের থেকেও বড় হতে পারে?
Mhmd

তারা অবশ্যই সংলগ্ন হতে হবে। দুটি 22x10 ব্লক 4 টি স্পেস দ্বারা অনুভূমিকভাবে পৃথক করা উচিত। @ এমএইচএমডি
জ্যাচ গেটস

আপনার প্রোগ্রামে ফাংশন অনুমোদিত। প্রোগ্রামটি অবশ্যই নিজের দ্বারা চালিত করতে হবে (যদিও একটি ব্যবহারকারী ইনপুট সহ)। @ ইথ প্রডাকশনস
জ্যাচ গেটস

দুটি বলই কি ঘোরানো উচিত নয়? আমি যেমন উপপাদ্যটি বুঝতে পারি, আসলটি থাকে না তবে আপনি দুটি নতুন বল পান।
পাওলো ইবারম্যান

হ্যাঁ, তবে আমি সম্পাদনা করার সুযোগ পাওয়ার আগেই একটি উত্তর জমা দেওয়া হয়েছিল, এবং আমি কোনও সমাধান অবৈধ করতে চাইনি। @ পাওলোএবারম্যান
জ্যাচ গেটস

উত্তর:


7

পাইথ, 21 বাইট

#++Jw*4d.rJ".,?*&$@!%

অনলাইনে চেষ্টা করুন: বিক্ষোভ

অবশেষে একটি ব্যবহারের ক্ষেত্রে .r

ব্যাখ্যা

#++Jw*4d.rJ".,?*&$@!%
#                       infinite loop
   Jw                   read a string from input and store it in J
     *4d                4 spaces
        .rJ".,?*&$@!%   rotate the chars of J using this char order
 ++                     combine the 3 strings (J, spaces, rotated) and print

অসীম লুপটি ভেঙে যায়, যখন আর কোনও ইনপুট উপলব্ধ থাকে না।


7

রুবি, 65

10.times{b=gets;puts b.chop.tr(',?*&$@!%.','.,?*&$@!%')+'    '+b}

স্ট্যান্ডিনের পরিবর্তে কোনও ফাইল থেকে ইনপুট নেওয়া হলে দুর্দান্ত কাজ করে:

ruby banach.rb < ball.txt

অন্যদিকে, আপনি যদি স্ট্যান্ডিনে ম্যানুয়ালি বলগুলিতে টাইপ করতে চান এবং শেষে আউটপুট চান তবে এই 67-বাইট সংস্করণটি ব্যবহার করে দেখুন:

puts (0..9).map{b=gets;b.chop.tr(',?*&$@!%.','.,?*&$@!%')+'    '+b}

6

মতলব, 120

মতলব স্ট্রিংগুলি পরিচালনা করার জন্য সর্বাধিক ভাষা নয়। \nসর্বদা দুটি চরিত্র হিসাবে বিবেচিত হয় যা বেশ বিরক্তিকর, এবং আপনি কেবল একটি লাইন-ভাঙ্গা (লাইন-ভাঙ্গা?) স্ট্রিংয়ের বাইরে একটি ম্যাট্রিক্স তৈরি করতে পারবেন না, আপনাকে এটি ম্যানুয়ালি করতে হবে। কমপক্ষে আমাকে আকার / প্যাডিংয়ের যত্ন নেওয়ার দরকার নেই কারণ প্রতিটি লাইনের সঠিক দৈর্ঘ্য রয়েছে।

a='.,?*&$@!%.';b=input('');b(b>90)=[];b=reshape(b',22,10)';c=b;for k=1:9;c(b==a(k))=a(k+1);end;disp([b,ones(10,4)*32,c])

উদাহরণ ইনপুট:

'      ##########      \n   ###@%$*.&.%%!###   \n  ##!$,%&?,?*?.*@!##  \n ##&**!,$%$@@?@*@&&## \n#@&$?@!%$*%,.?@?.@&@,#\n#,..,.$&*?!$$@%%,**&&#\n ##.!?@*.%?!*&$!%&?## \n  ##!&?$?&.!,?!&!%##  \n   ###,@$*&@*,%*###   \n      ##########      '

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

      ##########                ##########      
   ###@%$*.&.%%!###          ###!.@&,$,..%###   
  ##!$,%&?,?*?.*@!##        ##%@?.$*?*&*,&!%##  
 ##&**!,$%$@@?@*@&&##      ##$&&%?@.@!!*!&!$$## 
#@&$?@!%$*%,.?@?.@&@,#    #!$@*!%.@&.?,*!*,!$!?#
#,..,.$&*?!$$@%%,**&&#    #?,,?,@$&*%@@!..?&&$$#
 ##.!?@*.%?!*&$!%&?##      ##,%*!&,.*%&$@%.$*## 
  ##!&?$?&.!,?!&!%##        ##%$*@*$,%?*%$%.##  
   ###,@$*&@*,%*###          ###?!@&$!&?.&###   
      ##########                ##########      

PS: যদি আমি এইভাবে ইনপুটটি ধরে নিতে পারি:

['      ##########      ','   ###@%$*.&.%%!###   ','  ##!$,%&?,?*?.*@!##  ',' ##&**!,$%$@@?@*@&&## \n#@&$?@!%$*%,.?@?.@&@,#','#,..,.$&*?!$$@%%,**&&#',' ##.!?@*.%?!*&$!%&?## ','  ##!&?$?&.!,?!&!%##  ','   ###,@$*&@*,%*###   ','      ##########      ']

আমার কেবল 88 টি অক্ষর দরকার:

a='.,?*&$@!%.';b=input('');c=b;for k=1:9;c(b==a(k))=a(k+1);end;disp([b,ones(10,4)*32,c])

4

রুবি, ১০২

IO.readlines(?a).map(&:chomp).each{|x|puts"#{x+' '*x.count(' ')+?\s*4+x.tr('.,?*&$@!%',',?*&$@!%.')}"}

মূলত, তার ঠিক কলিং trইনপুটের



4

সিজেম, 28 বাইট

qN/{_".,?*&$@!%"_(+erS4*\N}%

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

ব্যাখ্যা:

qN/     Get input and split into lines.
{       Start loop over lines.
  _       Copy, since we need to output original.
  ".,?*&$@!%"
          List of characters, in order.
  _       Copy list of characters.
  (+      Rotate the list by popping first character and appending it.
  er      Transliterate.
  S4*     Create 4 spaces.
  \       Swap spaces between original and transliteration.
  N       Add newline.
}%      End of loop over lines.

4

পাইথন 3.5, 96 89 88 বাইট

s='.,?*&$@!%.  ##';i=1
while i:i=input();print(i,'  ',''.join(s[s.find(y)+1]for y in i))

পাইথন 3.3, 103 96 95 বাইট

s='.,?*&$@!%.  ##'
for i in input().split('\n'):print(i,'  ',''.join(s[s.find(y)+1]for y in i))

ব্যাখ্যা

পাইথন ৩.৩ এবং ৩.৩ আলাদাভাবে তালিকাভুক্ত করা হয়েছে কারণ input()আইডলিতে নতুন লাইনের হ্যান্ডেল করার উপায়টি পরিবর্তিত হয়েছে। এটি 8 টি বাইট সংরক্ষণ করার জন্য ঘটেছে, যা দুর্দান্ত।

প্রয়োগের ক্ষেত্রে নোট: আইডিএল ব্যবহার করুন। আপনি যদি কোনও টার্মিনাল ব্যবহার করেন, তবে 3.3 এর সমাধানটি 3.5 এর সমান, তবে উভয়ই আউটপুটটির সাথে ইনপুটটি ইন্টারলেভ করে।

sপাইথনের নেতিবাচক সূচকের সুবিধা নেওয়ার জন্য আমি প্রতীকের স্ট্রিংটি বিপরীত করেছি । তারপরে ইনপুটটির প্রতিটি লাইনের জন্য আমি এটিকে আউটপুট দেব, দুটি ফাঁকা স্থান এবং প্রতিটি চিহ্নের সাথে রেখাটি তার পূর্ববর্তী চিহ্নের সাথে প্রতিস্থাপন করা হবে। আমি কেবল দুটি স্পেস রাখার কারণটি আমি তার ,পরিবর্তে ব্যবহার করেছি +, যা মুদ্রিত আউটপুটটিতে একটি স্থান যুক্ত করে। এটি ( ,' ',) আমাকে একটি বাইট ওভার বাঁচিয়েছে +' '*4+

আমাকে 8 8 বাইট সংরক্ষণ করার জন্য xsot ধন্যবাদ । আমি পরিবর্তন s.findকরতে s.rfindআমার মধ্যে স্পেস এবং হ্যাশ লাগাতে করার অনুমতি sফলে জন্য একটি চেক করতে প্রয়োজন সরানোর y in s। এছাড়াও, একটি স্থান সংরক্ষণ করা হয়েছিল। সম্পাদনা: ফিরে গিয়েছে s.findকারণ ##এখন উপস্থিতি আমাকে +1সূচি-বহিরাগত ত্রুটির বিষয়ে চিন্তা না করেই অনুমতি দেয় ।


আপনি কীভাবে input()পরিবর্তিত হয়েছে তা বোঝাতে আপত্তি করবেন ? আমি এর মধ্যে কোনও পার্থক্য খুঁজে পাচ্ছি না 3.4 এবং 3.5 ডকুমেন্টেশনের ।
কেভিন

ইনপুট স্ট্রিংয়ে থাকা নিউলাইনগুলি ইনপুটটিকে "সমাপ্ত" করে, তাই কথা বলতে এবং আপনার ইনপুট কোডটিকে পুনরায় কল করতে। পাইথন ৩.৩-এ, নিউলাইনগুলি অক্ষত অবস্থায় উত্তীর্ণ হয়েছে পরিবর্তনটি অবশ্যই 3.3 থেকে 3.4 এর মধ্যে হওয়া উচিত।
এল'ইনিয়া স্টারম্যান

না, ৩.৩ ডক্সও একই রকম। আমি অনুমান করছি এটি একটি পঠনের পরিবর্তন, সম্ভবত কোনও সংস্করণ থেকে from আপনি যদি পাঠ্যলাইন ছাড়াই সংকলন করেন তবে আপনি কোনও পার্থক্য লক্ষ্য করতে পারেন না।
কেভিন

আমি আইডিএল ব্যবহার করি, সুতরাং এটিরও ভুল হতে পারে। আমি এটি টার্মিনাল থেকে চালানোর চেষ্টা করব।
এল'েন্ডিয়া স্টারম্যান

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

3

রেটিনা , 45 39 বাইট

.+
$0  ; $0
T`.,?*&$@!%;`,?*&$@!%. `;.*

একটি একক ফাইল থেকে কোড চালানোর জন্য, -sপতাকাটি ব্যবহার করুন ।

প্রথম পর্যায়ে প্রতিটি রেখার নকল করে, আলাদাভাবে আলাদা " ; "পেতে

      ##########        ;       ##########
   ###@%$*.&.%%!###     ;    ###@%$*.&.%%!###
  ##!$,%&?,?*?.*@!##    ;   ##!$,%&?,?*?.*@!##
 ##&**!,$%$@@?@*@&&##   ;  ##&**!,$%$@@?@*@&&##
#@&$?@!%$*%,.?@?.@&@,#  ; #@&$?@!%$*%,.?@?.@&@,#
#,..,.$&*?!$$@%%,**&&#  ; #,..,.$&*?!$$@%%,**&&#
 ##.!?@*.%?!*&$!%&?##   ;  ##.!?@*.%?!*&$!%&?##
  ##!&?$?&.!,?!&!%##    ;   ##!&?$?&.!,?!&!%##
   ###,@$*&@*,%*###     ;    ###,@$*&@*,%*###
      ##########        ;       ##########

তারপরে দ্বিতীয় পর্যায়ে কেবল এমন অক্ষরগুলিই প্রভাবিত হয় যা মিলগুলির মধ্যে পাওয়া যায় ;.*, অর্থাত্ প্রতিটি রেখার দ্বিতীয়ার্ধে। এই অক্ষরগুলি পরে নিম্নলিখিত চিঠিপত্রের মাধ্যমে অনূদিত হয়

.,?*&$@!%;
,?*&$@!%. 

যেখানে প্রথম 9 জোড়া বলের অক্ষরগুলি "বর্ধন" করে এবং শেষ জোড়াটি সেমিকোলনটিকে অন্য একটি জায়গায় পরিণত করে।


2

পাইথন 2, 77 বাইট

while 1:r=raw_input();print r,'  ',r.translate(' % #@.$   & ? , '*3+'!*'*104)

2

পার্ল, 59 বাইট

-pএটিকে একটি ফাইলে সংরক্ষণ করতে হবে বলে 56 বাইট কোড প্লাস 3 বাইট ।

chop($s=$_);$l=',?*&$@!%';eval"y/.$l/$l./";$_="$s    $_"

ব্যবহারের উদাহরণ:

$perl -p ball.pl <<< '      ##########      
>    ###@%$*.&.%%!###   
>   ##!$,%&?,?*?.*@!##  
>  ##&**!,$%$@@?@*@&&## 
> #@&$?@!%$*%,.?@?.@&@,#
> #,..,.$&*?!$$@%%,**&&#
>  ##.!?@*.%?!*&$!%&?## 
>   ##!&?$?&.!,?!&!%##  
>    ###,@$*&@*,%*###   
>       ##########      
> '
      ##########                ##########      
   ###@%$*.&.%%!###          ###!.@&,$,..%###   
  ##!$,%&?,?*?.*@!##        ##%@?.$*?*&*,&!%##  
 ##&**!,$%$@@?@*@&&##      ##$&&%?@.@!!*!&!$$## 
#@&$?@!%$*%,.?@?.@&@,#    #!$@*!%.@&.?,*!*,!$!?#
#,..,.$&*?!$$@%%,**&&#    #?,,?,@$&*%@@!..?&&$$#
 ##.!?@*.%?!*&$!%&?##      ##,%*!&,.*%&$@%.$*## 
  ##!&?$?&.!,?!&!%##        ##%$*@*$,%?*%$%.##  
   ###,@$*&@*,%*###          ###?!@&$!&?.&###   
      ##########                ##########      

1

05 এ বি 1 ই (উত্তরাধিকার) , 21 বাইট

|ʒD4ú".,?*&$@!%"DÀ‡«,

05AB1E এর উত্তরাধিকার সংস্করণ ব্যবহার করে, কারণ মুদ্রণের জন্য পূর্ববর্তী হিসাবে ʒঅন্তর্নিহিত ফিল্টারটি ব্যবহার করা সম্ভব ছিল y, তবে নতুন সংস্করণে vস্পষ্টরূপে প্রতিটি লুপ yব্যবহার করা উচিত, যা 1 বাইট দীর্ঘ longer

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

ব্যাখ্যা:

|                      # Get the input-lines as list
 ʒ                     # For-each over the lines to print using the filter-builtin:
  D                    #  Duplicate the current line
   4ú                  #  Prepend 4 spaces to this copy
     ".,?*&$@!%"       #  Push this string
                DÀ     #  Duplicate it, and rotate its copy once towards the left
                      #  Transliterate the space-prepended string with these two strings
                   «   #  Append it to the original duplicated line
                    ,  #  And print with trailing newlines

এখানে একটি সংস্করণ যে 05AB1E (কৃতিত্ব এর নতুন সংস্করণে কাজ করে @Grimy ):

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

TFD?4ú".,?*&$@!%"DÀ‡,

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

ব্যাখ্যা:

TF                     # Loop 10 times:
  D                    #  Duplicate the (implicit) input-line
   ?                   #  Pop and print the copy without trailing newline
    4ú                 #  Prepend 4 spaces to the input-line
      ".,?*&$@!%"      #  Push this string
                 DÀ    #  Duplicate it, and rotate its copy once towards the left
                      #  Transliterate the space-prepended string with these two strings
                    ,  #  And print with trailing newlines

1
অ-উত্তরাধিকার 21: TFD?4ú".,?*&$@!%"DÀ‡,(ইনপুট হুবহু 10 লাইন হওয়ার গ্যারান্টিযুক্ত)।
গ্রিমি

1
@ গ্রিমি এটি যোগ করবে। এছাড়াও এটি ₂jএকটি দুর্দান্ত (যদিও একই বাইট) বিকল্প হিসাবে পাওয়া যায় , যেহেতু প্রস্থটি 26 টি অক্ষরের গ্যারান্টিযুক্ত। :)
কেভিন ক্রুইজসেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.