পাঁচটি চরিত্রের ASCII মানচিত্র


9

দ্রষ্টব্য: এই পোস্টে, 'চরিত্র' এবং 'বর্ণ' শব্দটি মূলত একই জিনিসটিকে বোঝায়

এই ছবিটি:

উদাহরণ মানচিত্র

হিসাবে প্রতিনিধিত্ব করা যেতে পারে

....'''333
.eeee'''3e
..dddd33ee
%%%dd####e

(আসকি বর্ণগুলিতে রঙ ম্যাপিং)

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

এর অর্থ হ'ল চারটি রঙ ব্যবহার করে কোনও মানচিত্রকে রঙ করা সম্ভব হওয়া উচিত যাতে দুটি প্রান্ত যা ভাগ করে একটি রঙ ভাগ করে না।

মাত্র চারটি রঙ ব্যবহার করে কোনও মানচিত্রকে রঙ করার জন্য অ্যালগরিদম জটিল তাই এই চ্যালেঞ্জটিতে আপনার প্রোগ্রামটি কেবল পাঁচ বা তার চেয়ে কম রঙ ব্যবহার করে মানচিত্রটি রঙ করতে হবে।

পূর্ববর্তী মানচিত্রটি এর মতো দেখতে পারে:

উদাহরণস্বরূপ পাঁচটি রঙের মানচিত্র

যা হিসাবে প্রতিনিধিত্ব করা যেতে পারে

....'''333
.eeee'''3e
..dddd33ee
333dd....e

বা সমতুল্য

@@@@$$$!!!
@^^^^$$$!^
@@<<<<!!^^
!!!<<@@@@^

চ্যালেঞ্জ:

আসকি অক্ষর দিয়ে তৈরি একটি "মানচিত্র" দেওয়া হয়েছে (যেখানে প্রতিটি অক্ষর আলাদা বর্ণের প্রতিনিধিত্ব করে), মানচিত্রটিকে "পুনরুদ্ধার করুন" (বিভিন্ন এসকিআই অক্ষর ব্যবহার করে মানচিত্রটি উপস্থাপন করুন) যাতে এটি কেবল পাঁচ বা কম বর্ণ ব্যবহার করে।

উদাহরণ:

ইনপুট:

%%%%%%%%%%%%##########$$$$$$$$%%
*****%%%####!!!!!!!%%%%%%%%%#^^^
(((((((***>>>>??????????%%%%%%%%
&&&&&&&&$$$$$$$^^^^^^^))@@@%%%%%
^^^^^^%%%%%%%%%%%%##############

সম্ভাব্য আউটপুট:

11111111111122222222223333333311
44444111222255555551111111112444
22222224441111444444444411111111
55555555222222255555553355511111
22222211111111111122222222222222

ব্যাখ্যা:

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

স্যান্ডবক্স লিঙ্ক


2
কমপক্ষে আপনার উদাহরণে আমি দেখতে পাচ্ছি যে "মানচিত্রগুলি" আসলে পরিকল্পনাকারী গ্রাফ নয়, অ-সংযুক্ত অঞ্চলগুলি একই রঙের বলে মনে হয়। এর অর্থ হল আপনি সহজেই এমন একটি গ্রাফ তৈরি করতে পারেন যার রঙ করতে 6 বা ততোধিক রঙের প্রয়োজন। 121এই সমস্যাটি এড়াতে আমাদের কী মানচিত্রটিকে 3 পৃথক অঞ্চল হিসাবে বিবেচনা করা উচিত, যদিও উদাহরণটি অন্যথায় বোঝায়, বা আমাদের কী এটি 2 হিসাবে বিবেচনা করা উচিত এবং ধরে নেওয়া উচিত যে কোনও মানচিত্র 5 টিরও বেশি রঙের প্রয়োজন হবে না?
মাইল্ডলি মিল্কিটোস্ট

2
উদাহরণে কোনও ত্রুটি নেই, উদাহরণটি যে কোনওভাবে কাজ করতে পারে - এটি ভুল নয়, কেবল অস্পষ্ট। এটি একই চরিত্রের লেবেলযুক্ত বিভিন্ন অঞ্চল নিয়মে একই বা একাধিক অঞ্চল কিনা তা নির্দিষ্ট করতে সহায়তা করবে।
মাইল্ডলি মিল্কিটোস্ট

1
মজাদারভাবে যথেষ্ট, আমি এখনই চার রঙের উপপাদ্যের প্রমাণ নিয়ে একটি প্রবন্ধ লিখছি। আমার বলতে হবে, পাঁচটি বর্ণের
উপপাদকের প্রমাণটি

উত্তর:


5

পাইথন 2 , 375 361 359 357 355 353 350 347 বাইট

e=enumerate
C=set('12345')
def f(s):
 s=[map(ord,l)for l in s]
 for i,v in e(s):
	for j,w in e(v):
	 if{w}-C:
		F,N=g([],s,i,j,w)
		for y,x in F:s[y][x]=min(C-N)
 return s
def g(m,s,i,j,c):
 n={s[i][j]}
 if(n^{c}or(i,j)in m)<1:
	m+=(i,j),
	for x,y in(0,1),(0,-1),(1,0),(-1,0):
	 if len(s)>i+x>-1<j+y<len(s[0]):m,N=g(m,s,i+x,j+y,c);n|=N
 return m,n

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

স্ট্রিংগুলির তালিকা হিসাবে ইনপুট নেয় এবং তালিকার একটি তালিকা প্রদান করে returns

fমানচিত্রের ইনপুট নেয় এবং এতে রঙ হয়, gসমস্ত সংযুক্ত অক্ষর এবং তাদের প্রতিবেশীদের গোষ্ঠীগুলিকে এই অঞ্চলে ফিরিয়ে দেয় একটি আলাদা বর্ণের সাথে রঙিন করা যায়।



@ovs ধন্যবাদ :-)
টিফিল্ড


@ ফিলিপনার্দিবাটিস্তা ধন্যবাদ :)
টিফিল্ড

if~-(n!={c}or(i,j)in m):-2 বাইটের জন্য
ফিলিপ নারদী
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.