কিছু ক্ষেত্রে, প্রায়শই পদার্থবিজ্ঞানে আপনাকে গ্রাফ যোগ করতে হয়। আপনার চ্যালেঞ্জটি হ'ল আপনার পছন্দের ভাষায়, এমন একটি প্রোগ্রাম বা ফাংশন যা একাধিক গ্রাফ চিত্র হিসাবে গ্রহণ করে, সমস্ত সম্ভাব্য অঙ্কের গণনা করে, এবং ফলাফলকে আউটপুট করে।
গ্রাফ
গ্রাফগুলি এমন চিত্র যা rgb(255, 255, 255)
প্রতিটি কলামে একটি অ-সাদা পিক্সেল সহ একটি সাদা ( ) পটভূমি ধারণ করে । উদাহরণ:
স্ক্রিপ্টের মানগুলি রঙিন পিক্সেলের ওয়াই অবস্থান হিসাবে উপস্থাপিত হয়। একটি নির্দিষ্ট এক্স স্থানাঙ্কের মানটি নীচে বাম দিকে 0 থেকে শুরু হওয়া স্থানাঙ্কগুলির সাথে, এই কলামটির উপরের রঙিন পিক্সেলের ওয়াই অবস্থানের সমান। নান্দনিক কারণে এই পিক্সেলের নীচে অতিরিক্ত রঙিন পিক্সেল থাকতে পারে বা নাও থাকতে পারে।
কার্য
আপনার কাজটি হ'ল আপনার পছন্দের ভাষায়, এমন একটি প্রোগ্রাম বা ফাংশন যা একাধিক গ্রাফ চিত্র হিসাবে গ্রহণ করে, সমস্ত সম্ভাব্য 2^n - 1
অঙ্কগুলি গণনা করে এবং ফলাফলকে আউটপুট করে।
গ্রাফের যোগফল একটি গ্রাফ যেখানে প্রতিটি কলামের মান প্রতিটি ইনপুট গ্রাফের সংশ্লিষ্ট কলামের মানগুলির সমান হয়।
গ্রাফগুলি একাধিক রঙে আসবে। ফলাফলের চিত্রটিতে গ্রাফের সমস্ত সম্ভাব্য পরিমাণগুলি অবশ্যই অন্যান্য গ্রাফ হিসাবে থাকতে হবে, মূল গ্রাফগুলি সহ তবে শূন্যের যোগফল বাদে।
প্রতিটি অঙ্কের রঙ অন্তর্ভুক্ত গ্রাফগুলির রঙগুলির গড় দ্বারা নির্ধারিত হয়, উদাহরণস্বরূপ, রঙের গ্রাফ rgb(255, 0, 255)
এবং এর rgb(0, 255, 255)
গ্রাফ তৈরি করে rgb(128, 128, 255)
(এছাড়াও বৃত্তাকারও হতে পারে)।
ফলস্বরূপ চিত্রটি সমস্ত গ্রাফের জন্য উপযুক্ত হওয়া উচিত। এর অর্থ আপনাকে যে কোনও ইনপুট থেকে বড় চিত্র আউটপুট করতে হতে পারে।
ফলস্বরূপ গ্রাফগুলি ফলাফলের চিত্রটিতে আঁকানো ক্রমের সাথে কোন ক্রম আসে না, অর্থাত্ যদি ফলাফল গ্রাফগুলি ওভারল্যাপ হয় তবে আপনি কোনটি শীর্ষে আছেন তা বেছে নিতে পারেন, তবে এটি গ্রাফগুলির মধ্যে একটি হতে হবে, তাদের রঙগুলির সংমিশ্রণ নয়।
আপনি ধরে নিতে পারেন যে ইনপুট চিত্রগুলি সমান প্রস্থের, চিত্রগুলির সমস্ত কলামে কমপক্ষে একটি অ-সাদা পিক্সেল রয়েছে এবং চিত্রগুলির উচ্চতা (আউটপুট সহ) 4096 পিক্সেলের নীচে রয়েছে।
উদাহরণ
ইনপুট এ:
ইনপুট বি:
উদাহরণ আউটপুট:
(যদি কেউ আগ্রহী হন তবে আমি এলোমেলো সংস্থাগুলির স্টক চার্ট থেকে এইগুলির জন্য ডেটা অনুলিপি করেছি CS এটিই প্রথম উপায় যা আমি সিএসভি হিসাবে বাস্তববাদী ডেটা পেয়েছি found
বিধি
- আপনি যে কোনও বিটম্যাপ ইমেজ ইনপুট ফাইল ফর্ম্যাট বেছে নিতে পারেন।
- আপনি যে কোনও বিটম্যাপ চিত্র আউটপুট ফাইল ফর্ম্যাট বেছে নিতে পারেন, যা ইনপুটটির সাথে মেলে না।
- আপনি ইমেজ প্রসেসিং লাইব্রেরি ব্যবহার করতে পারেন, তবে সরাসরি এই কাজটি সম্পন্ন করার জন্য কোনও কার্য নিষিদ্ধ করা হয়েছে।
- স্ট্যান্ডার্ড লুফোলস প্রযোজ্য।
- এই কোড-গলফ, তাই বাইটস মধ্যে সংক্ষিপ্ততম কোড।
গ্রাফ জেনারেটর স্ক্রিপ্ট
এখানে একটি পাইথন 2 স্ক্রিপ্ট যা গ্রাফ তৈরি করে। আরওজি রঙ হিসাবে প্রথম তিনটি রেখা এবং বাকী ডেটা হিসাবে ইওএফ দ্বারা সমাপ্ত, লাইনগুলিতে ইনপুট দেওয়া হয়।
import PIL.Image as image
import sys
if len(sys.argv) < 2:
sys.stderr.write("Usage: graphgen.py <outfile> [infile]")
exit(1)
outfile = sys.argv[1]
if len(sys.argv) > 2:
try:
stream = open(sys.argv[2], "r")
data = stream.read()
stream.close()
except IOError as err:
if err.errno == 2:
sys.stderr.write("File \"{0}\" not found".format(sys.argv[2]))
else:
sys.stderr.write("IO error {0}: {1}".format(err.errno, err.strerror))
exit(1)
else:
data = sys.stdin.read()
try:
items = map(int, data.strip().split("\n"))
red, green, blue = items[:3]
items = items[3:]
highest = max(items)
except (ValueError, TypeError, IndexError):
sys.stderr.write("Invalid value(s) in input")
img = image.new("RGB", (len(items), highest + 1), (255, 255, 255))
prev = items[0]
img.putpixel((0, highest - items[0]), (red, green, blue))
for x, item in enumerate(items[1:]):
img.putpixel((x + 1, highest - item), (red, green, blue))
if item < prev:
for i in range(item + 1, prev):
img.putpixel((x, highest - i), (red, green, blue))
else:
for i in range(prev + 1, item):
img.putpixel((x + 1, highest - i), (red, green, blue))
prev = item
img.save(outfile, "png")
n
ইনপুট গ্রাফ থাকে 2^n - 1
তবে আউটপুট চিত্রটিতে লাইন থাকবে ?