মস্তিষ্ক-ফ্ল্যাক টেক্সট


13

আপনার চ্যালেঞ্জটি হ'ল ইনপুট পাঠ্যটিকে মস্তিষ্ক-ফ্ল্যাঙ্ক কোডে পরিণত করা যা পাঠ্যটিকে আউটপুট দেয়।

থেকে নেওয়া টিউটোরিয়াল এখানে অনুমতি নিয়ে এখানে

ব্রেন-ফ্ল্যাকের দুটি স্ট্যাক রয়েছে, যা 'বাম' এবং 'ডান' নামে পরিচিত। সক্রিয় স্ট্যাকটি বাম দিকে শুরু হয়। যদি খালি স্ট্যাকটি পপ করা হয় তবে এটি 0 ফিরে আসবে That's এটিই। অন্য কোনও ভেরিয়েবল নেই। প্রোগ্রামটি শুরু হয়ে গেলে, প্রতিটি কমান্ড লাইনের যুক্তি সক্রিয় স্ট্যাকের দিকে ঠেলে দেওয়া হয়।

মস্তিষ্ক-ফ্ল্যাক প্রোগ্রামের একমাত্র বৈধ অক্ষর ()[]{}<>এবং সেগুলি সর্বদা ভারসাম্যপূর্ণ হওয়া উচিত। আছে: ফাংশন দুই ধরনের হয় Nilads এবং Monads । একজন nilad একটি ফাংশন যে 0 আর্গুমেন্ট নেয়। এখানে সমস্ত নীলাড রয়েছে:

  • () একটিতে মূল্যায়ন করে।
  • [] বর্তমান স্ট্যাকের উচ্চতায় মূল্যায়ন করে।
  • {}সক্রিয় স্ট্যাকটি পপ করুন। পপড মানটির মূল্যায়ন করে।
  • <>সক্রিয় স্ট্যাক টগল করুন। শূন্যের মূল্যায়ন হয়।

এগুলি যখন মূল্যায়ন করা হয় তখন তারা একত্রে সম্মিলিত হয়। সক্রিয় স্ট্যাকের উপরে যদি আমাদের একটি '3' থাকে তবে এই স্নিপেট:

()(){}

থেকে মূল্যায়ন করবেন 1 + 1 + active.pop()যা থেকে 5 মূল্যায়ন করবেন।

মনাদাদের একটি যুক্তি, ব্রেন-ফ্লাক কোডের একটি অংশ নেওয়া হয় take এখানে সমস্ত মনদাদ রয়েছে:

  • (n) সক্রিয় স্ট্যাকের উপর 'n' চাপুন।
  • [n] নেতিবাচক 'এন' এ মূল্যায়ন
  • {foo} শূন্যটি স্ট্যাকের শীর্ষে না থাকলেও, ফু!
  • <foo> ফু কার্যকর করুন, তবে 0 হিসাবে মূল্যায়ন করুন।

এই ফাংশনগুলি তাদের মধ্যে মানটিও ফিরিয়ে দেবে, তাই

(()()())

3 ধাক্কা দেবে কিন্তু

((()()()))

দু'বার ধাক্কা দেবে ।

{}সব রানের যোগফল নির্ণয় করা হবে। সুতরাং যদি আমাদের স্ট্যাকের শীর্ষে '3' এবং '4' থাকে:

{{}}

7 হিসাবে মূল্যায়ন করা হবে।

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

বিধি

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

পরীক্ষার কেসগুলি (চ্যালেঞ্জ পোস্ট হওয়ার পরে 1-2 সপ্তাহের মধ্যে প্রকৃত স্কোরিং পাঠগুলি প্রকাশিত হবে)

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

The meaning of brain-flak is to flak your brain with pain.

`1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:"ZXCVBNM<>?

To be, or not to be, that is the question:
Whether 'tis nobler in the mind to suffer
The slings and arrows of outrageous fortune,
Or to take arms against a sea of troubles
And by opposing end them. To die-to sleep,
No more; and by a sleep to say we die

<your brain-flak code here>

The fitness pacer test is a multi stage test. Avacado Avacado Avacadad Avacadad carrot.bat carrot.jar carrot.carrot Quack Quack Quack Quack Quack Quack Quack Quack Quack downgoat doawngoat down down gaot



This challenge came from a online program that turned text into brain-fuck. However brain-fuck has limitations and it is not nearly as cool as brain-flak. I really am looking forward to cool programs :) I am glad you took the time to read this and look forward to seeing your answer.

জয়লাভ

জয়ের জন্য আপনাকে অবশ্যই পরীক্ষার প্রতিটি ক্ষেত্রে দেওয়া মস্তিষ্ক-ফ্ল্যাক কোডের মোট দৈর্ঘ্য দিতে হবে যা পোস্টের তারিখের 1-2 সপ্তাহ পরে প্রকাশিত হবে। সংক্ষিপ্ততম মোট দৈর্ঘ্যের জয়।

বিঃদ্রঃ!!!!!!:

এটি , আপনার কোডের দৈর্ঘ্য কোনওভাবেই আপনার চূড়ান্ত স্কোরকে প্রভাবিত করবে না। পরিষ্কার পাঠযোগ্য কোড তৈরি করা প্রশংসাযোগ্য। ধন্যবাদ!

পরীক্ষার মামলা

এখানে



4
টিএনবি মেমস হ'ল মেমসের ড্যানচেস্ট।
ম্যাজিক অক্টোপাস উরান

1
যদি আমি এটি +1 দ্বিগুণ করতে পারি, পরিবর্তে আমি একটি অনুদানের প্রস্তাব দেব কারণ আমি কীভাবে এটি করার কথা ছিল তা জানতে চাই। প্রথম উত্তর যা <your brain-flak code here>1000 এর নিচে পেয়ে যায় তা অনুগ্রহপ্রাপ্ত হয়। যা আমি আর একদিন পোস্ট করতে পারি না, ওফ; এটি কতটা নতুন ছিল তা খেয়াল করেননি।
যাদু অক্টোপাস উরান 8:58 এ 20

1
এছাড়াও, যদি ইনপুটটির পরিসীমা প্রিন্টযোগ্য এএসসিআইআইয়ের মধ্যে সীমাবদ্ধ না থাকে, তবে আপনাকে NU বাইট সহ প্রতিটি বাইট মান রয়েছে এমন পরীক্ষার কেসগুলি অন্তর্ভুক্ত করা উচিত।
mbomb007

2
"পরিষ্কার, পঠনযোগ্য কোড তৈরি করা প্রশংসা করা হয়েছে" তাত্ক্ষণিকভাবে 05AB1E এ চ্যালেঞ্জ করে
ম্যাজিক অক্টোপাস উরান

উত্তর:


13

ব্রেন-ফ্লাক , 130 বাইট

{({}<>)<>}<>{((((()()()()()){}){}){}<>)<>{(((((()()()()()){}){}){}<>)())<>({}[()])}<>((((()()()()()){}){}){}())<>{}}<>{({}<>)<>}<>

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

আউটপুট <your brain-flak code here>: 5045 বাইট

(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())(()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())

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


1
মস্তিষ্ক-ঝাঁকুনি তীব্র হয়
ম্যাজিক অক্টোপাস

1
@ ম্যাজিক অ্যাক্টপাস ইউরান মেটাফ্লাকিং : ডি
হাইপার নিউট্রিনো

পরীক্ষার কেসগুলি বাইরে রয়েছে
ক্রিস্টোফার

7

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

সম্পাদনা: স্ট্যাক নিরাপদ পরিস্থিতিতে গল্ফকে সহায়তা করার জন্য আমি বেশ কয়েকটি বিকল্প যুক্ত করেছি।

import sys
sys.setrecursionlimit(1000000)
import time

def copy(n, code):
	if n == 1: return code
	for x in range(2, n):
		if n%x == 0: return '('*(x-1) + copy(n//x, code) + ')'*(x-1) + '{}'*(x-1)
	return '('*(n-1) + code + ')'*(n-1) + '{}'*(n-1)

letterCache = {}
def letterGen(n, stackLen, prev=0, enclosed=0):
	if (n, stackLen, prev, enclosed) in letterCache: return letterCache[(n, stackLen, prev, enclosed)]
	if n == 0: return ''
	if n == 1: return '()'
	if n == stackLen: return '[]'
	f = []
	if n < 0:
		f.append('[%s]'%letterGen(-n, stackLen, prev, enclosed))
	else:
		if prev != 0:
			diff = n-prev
			#Saves ~200 bytes but 20x longer
			#for x in range(min(diff, 0)-stackLen, max(diff, 0)+stackLen+1):
				#f.append(letterGen(x, stackLen - enclosed) + 's' + letterGen(diff - x, stackLen))

			f.append('s' + letterGen(diff, stackLen))
			f.append(letterGen(diff, stackLen - enclosed) + 's')
		x = 2
		while x*x < n:
			f.append(copy(x, letterGen(n//x, stackLen, prev, enclosed)) + letterGen(n%x, stackLen, prev, enclosed))
			x += 1
		f.append(letterGen(n-1, stackLen, prev, enclosed)+'()')
		if abs(n-stackLen) < n and stackLen > 1: f.append(letterGen(n-stackLen, stackLen, prev, enclosed) + '[]')
	letterCache[(n, stackLen, prev, enclosed)] = min(f, key=len)
	return letterCache[(n, stackLen, prev, enclosed)]

def s2BrainFlak(c, checkReverse = True):
	g = []
	c = c[::-1]
	stack = []
	out = []
	enclosed = 0

	if checkReverse:
		g.append(''.join(out) + s2BrainFlak(c, False) + '{({}<>)<>}<>')
		#for x in range(1,11): g.append(s2BrainFlak(list(c)+[chr(0)]*x, False) + '{({}<>)<>}<>')
	#if c and c[0] == chr(0):
	#	out.append('<>')
	#	while c[0] == chr(0):
	#		stack.append(0)
	#		out[0] = '(' + out[0] + ')'
	#		c = c[1:]


	for letter in range(len(c)):
		char = ord(c[letter])
		x = '(%s)'%letterGen(char, len(stack), stack[-1] if stack else 0, enclosed)

		if 's' in x:
			out[-1] = x.replace('s', out[-1])
			enclosed += 1
		else:
			out.append(x)
			enclosed = 1
		if checkReverse and c[letter+1:]:
			g.append(''.join(out) + '<>' + s2BrainFlak(c[letter+1:], False) + '{({}<>)<>}<>')
			m = min(list(map(ord, c[letter+1:])))-1
			#for i in range(1,m): g.append(''.join(out) + '<>' + s2BrainFlak(list(map(lambda x: chr(ord(x)-i), c[letter+1:])), False) + "{({}%s<>)<>}<>"%letterGen(i, 0))
			g.append(''.join(out) + '<>' + s2BrainFlak(list(map(lambda x: chr(ord(x)-m), c[letter+1:])), False) + "{({}%s<>)<>}<>"%letterGen(m, 0))
			#for x in range(1,11): g.append(''.join(out) + s2BrainFlak(list(c)+[chr(0)]*x, False) + '{({}<>)<>}<>')
		stack.append(char)
	g.append(''.join(out))
	return min(g, key=len)

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

একটি সাধারণ পুনরাবৃত্তি সমাধান যা আমি আরও উন্নতি করতে অবিরত করব। এটি ছোট ইনপুটগুলির সাথে খুব ভালভাবে কাজ করে তবে দীর্ঘ ইনপুটগুলির জন্য মেগাটমের রুবি উত্তরটি হারায় ।

মন্তব্য:

  • এটি পরিচালনা করার জন্য একটি পরিষ্কার স্ট্যাকের প্রয়োজন, অন্যথায় উন্নতিগুলি []অকেজো হয়ে যায় (যদিও তারা কয়েকটি লাইন মন্তব্য করে অক্ষম করা যেতে পারে, এবং তারা কেবল এটি প্রায় 100 বাইট দ্বারা উন্নতি করে )।
  • যেহেতু এটি পুনরাবৃত্তিযোগ্য অ্যালগরিদম, তাই বড় মানগুলির সাথে অক্ষরের জন্য এটি বেশি সময় নিতে পারে। উদাহরণস্বরূপ, অক্ষর ÿ (মান 255) মূল্যায়ন করতে 9 সেকেন্ড সময় নেয়, যেখানে প্রতিটি পরীক্ষার ক্ষেত্রে একবারে 1.6 সেকেন্ড সময় লাগে।ক্যাশে কার্যকর!
  • বিপরীত চেক করার আইডিয়া নির্লজ্জভাবে ধার করা থেকে ধারণাটি হাইপারনিউটারিনোর উত্তর , মোট থেকে 800 বাইট সঞ্চয় করে।
  • আমি একবারে সমস্ত পরীক্ষার কেস থেকে মোট পরীক্ষার ক্ষেত্রে মোটে পরিবর্তন করেছি। এটি স্ট্যাক দৈর্ঘ্যের অপারেটরের জন্য আরও ব্যবহার যুক্ত করে কিছু বাইট সংরক্ষণ করে ([] )
  • অক্ষরের মধ্যে পার্থক্যটি প্রেরণের সর্বনিম্ন চয়ন করা বা তাদের সংযোজন থেকে 200 বাইট (আবার, এটি স্ট্যাক দৈর্ঘ্যের অপারেটরের মাধ্যমে বাইট সংরক্ষণ করে)
  • একটি ক্যাশে প্রয়োগ করা হয়েছে (যা স্ট্যাকের দৈর্ঘ্যের উপর ভিত্তি করে মানগুলিকে ক্যাশে করে), যা আমাকে সময়সীমা অতিক্রম না করে আরও সম্ভাব্য উপায়গুলি পরীক্ষা করতে দেয়। এটি মোট থেকে 1500 বাইট সঞ্চয় করেছে।
    • এছাড়াও, আমি শেক্সপীয়ার পরীক্ষার ক্ষেত্রে এম ড্যাশটিকে একটি সাধারণ হিসাবে স্যুইচ করেছি -। আউট কয়েক বাইট এই কাটা, এবং একটি অনেক যে এম ড্যাশের মান প্রদত্ত 8212 হল-হে।
  • দীর্ঘ পরীক্ষার কেসগুলি থেকে কেটে টুকরো করে কেটে 1200 বাইট কেটে ফেলুন এবং অন্য স্ট্যাকের দিকে স্যুইচ করা, এটি বিপরীতে নির্মাণ করুন, এবং এটি আবার প্রথম স্ট্যাকের দিকে আবার ঠেলাও কিনা তা পরীক্ষা করে দেখুন। এরপরে আরও ন্যূনতম স্লাইসিংয়ের সীমাটি অনুকূল করে আরও সময় কাটা এবং সময় সাশ্রয় করুন।
  • পূর্ববর্তী অক্ষরের অংশের সাথে দক্ষতার জন্য একটি পুনরাবৃত্ত ফাংশনে রেকর্ডিংয়ের সাথে সংখ্যার উত্পাদনকারী ফাংশন সংযুক্ত করে। এখানে কয়েকটি বিভাগ রয়েছে যা কিছু বাইট সংরক্ষণ করে, তবে প্রোগ্রামের রানটাইমটি এক মিনিটের সীমা ছাড়িয়ে কিছুটা বাড়িয়ে দেয়।
    • এই অংশগুলিকে অবিস্মরণ করা এটিকে 11394 বাইটে কেটে ফেলতে পারে ... তবে প্রায় 16 মিনিট সময় নেয়।

উদাহরণ ফলাফল:

<your brain-flak code here> (৩১২ বাইট):

(()(((((((((()()()){}()){}()){}){})){}())[(()[][]){}])[][])[[]])([]((((([]((()[][][]){})[][]){})(()[]){})[()[][]])[()][]))([()][]([[]]((((([][]){}())){}[])(()()()){})))([()()()][]((((((()()[[][]]([()()()()][]((([][])[]){}()))[])())[((()()[])){}{}])[()()][]){})[()()()]))(([][]){}())((()()()()()[]){}){({}<>)<>}<>

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

Hello, World!( 142 বাইট [দ্রষ্টব্য: বর্তমানের সেরাটি 148 বাইট ছিল , এবং এখন 136 বাইট]]:

((()(((((((((()()()()){}){}){}()))){}{}())([][]){})[][])[[]])[((()[]){}){}])([()[]](((()(()[]([][]((()[][]){}[]))){}[])[()()()])))(([][][]){})

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


বিপরীত পরীক্ষা 800 বাট বাঁচায়? o_O
হাইপারনিউটারিনো

এছাড়াও আপনার পুনরাবৃত্ত ফাংশনের ফলাফলগুলি ক্যাশে করা উচিত; এতটা সময় বাঁচাতে পারে
হাইপারনিউত্রিনো

@ হাইপারনিট্রিনো ক্যাচিং এর অর্থ হ'ল আমি স্ট্যাক দৈর্ঘ্যের অপারেটরটি ব্যবহার করতে পারি না, যা আসলে অনেক কিছু সঞ্চয় করে, বিশেষত স্বল্প ইনপুটগুলির জন্য
জো কিং

1
@HyperNeutrino আমি শুধু আমি উপলব্ধি করতে একটি ক্যাশে যতদিন আমি প্রতিটি স্ট্যাকের উচ্চতা জন্য পৃথক ক্যাশে করা আছে,
জো রাজা

1
আপনার ব্রেন-ফ্ল্যাক মেটা-গল্ফার আউট-গল্ফ ব্রেন-ফ্ল্যাক নিয়মিত গল্ফের জন্য সেরা উত্তরটি? কি.
ম্যাজিক অক্টোপাস উরন

5

রুবি , সমস্ত (নতুন) পরীক্ষার ক্ষেত্রে 17398 বাইট

# cache for holding shortest push results
$p_cache = {} 

# Get code to push a number "a" to the stack,
#  given top of stack "b" and stack height "h"
def push a,b=nil,h=0
  return $p_cache[[a,b,h]] if $p_cache[[a,b,h]]
  arr = []
  if b
    arr.push "(({})#{add(a-b,h)})"
  end
  arr.push "(#{add a,h}  )"
  arr.push "([]#{add a-h,h}  )"
  i=2
  while i*i<=a && i<4
    arr.push "#{'('*(i-1)}#{push a/i,b,h}#{')'*(i-2)+'{}'*(i-1)}#{add(a%i,h)})"
    i+=1
  end
  $p_cache[[a,b,h]] = arr.min_by(&:length)
end


$cache = {}

# Get code to add a number "n" to the 3rd stack
#  given stack height "h" 

def add n,h=0
  return $cache[[n,h]] if $cache[[n,h]]
  arr = []
  if n > 0
    arr.push("()"*n)
  elsif n == 0
    return ""
  else
    if h > 0
      1.upto(-n/h){|i|
        arr.push "[#{'[]'*i}]#{add(h*i+n,h)}"
      }
    end
    arr.push "[#{add(-n,h)}]"
    return ($cache[[n,h]] = arr.min_by &:length)
  end
  
  if h > 0
    if n > h
      arr.push "[]#{add n-h,h}"
    else
      arr.push "[]#{add n-h}"
    end
  end
  
  i=2
  while i*i<=n && i<4
    arr.push "#{'('*(i-1)}#{add n/i,h}#{')'*(i-1)+'{}'*(i-1)}#{add(n%i,h)}"
    x=n-h-i+1
    if x > 0
      arr.push "#{'('*(i-1)}#{add x/i,h}#{')'*(i-1)}[]#{'{}'*(i-1)}#{add(x%i)}"
    end
    i+=1
  end
  $cache[[n,h]] = arr.min_by &:length
end

def push_arr(arr)
  i=0
  code = push(arr[0]) + "\n" + 
  arr.each_cons(2).map{|r|
    i+=1;push r[1],r[0],i
  }.join(?\n)
  
  while code =~ /^\((.*)\)\n(\(*)\{\}/
    code.gsub!(/^\((.*)\)\n(\(*)\{\}/, '\2\1')
  end
  
  code.split(/\n| /).join
end

# push a string to the stack
def push_string(text)
  push_arr text.chars.map(&:ord)
end

$str_cache = {}
# Push a string in reverse order
def push_string_r(text)
  return $str_cache[text] if $str_cache[text]
  a = [push_string(text)+"{({}<>)<>}<>", push_string(text.reverse)]
  
  min = text.bytes.min-1
  a.push push_arr(text.bytes.map{|x|x-min}) + "{({}<>#{add min})<>}<>"

  # Try cutting it into bits
  3.upto([text.length/20, 10].min)do|x|
    spl = x*9
    a.push push_string_r(text[spl..-1]) + "<>" + 
      push_string(text[0...spl]) + "{({}<>)<>}<>"
    spl = x*10
    a.push push_string_r(text[spl..-1]) + "<>" + 
      push_string(text[0...spl]) + "{({}<>)<>}<>"
  end
  
  a.map!{|code|code.gsub("<><>","")}

  $str_cache[text] = a.min_by &:length
end

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


<your brain-flak code here>, 362 358 বাইট

((((((((((()()()){}()){}()){}){})){}())[[][][][][]])[][])[()()()])((((((((([][][]()){}))){}{}()())[][]()())[[][]()])[][()])()()()()())([][][][]())(((([]([]())[]{}){})(()()()){})[[][()()()]])([]([][][]()){})((([][])[]){}())([]([][]())[]{})((([][]()())[]{})())((((((()()()()())[]{})[][()()]){})[()()()])((()()()){}){}())([][][][]())(((()())[]{}){}){({}<>)<>}<>

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


আপনার কোডটি একবারে সমস্ত পরীক্ষার ক্ষেত্রে 1 মিনিটেরও বেশি সময় নেয় (50 950 বাইট)। এটি দীর্ঘতর স্বতন্ত্র পরীক্ষার ক্ষেত্রে যদিও স্বল্প কোড তৈরি করে তা ভাল।
জো কিং

@ জোকিং এটা ঠিক আছে যে এটি প্রতিটি ক্ষেত্রে বেশি সময় নেয়: পি
ক্রিস্টোফার

@ ক্রিস্টোফার আমি এই Must run under 1 minute for inputs up to 1024 bytesনিয়মের কথা উল্লেখ করছিলাম (যদিও এখন এটি অনেক দ্রুত)
জো কিং

1
যদিও এটি আসলে কোড এক্সিকিউশন, একটি বস্তুর জন্য কোন ব্যাপার না যে পরে ব্যবহার করার জন্য দোকানে তথ্য একটি বলা হয় cache, না cash; P
মূল্য কালি

পরীক্ষার কেসগুলি বাইরে রয়েছে
ক্রিস্টোফার

4

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

cache = {}

def generate_number(num, height, level = 0, output = False): # Idea to use Stack Height inspired by Jo King
	if output: print(" " * level + str(num) + " " + str(height))
	if (num, height) in cache: return cache[(num, height)]
	if num == 0: return ""
	if num < 0: return "[" + generate_number(-num, height, level + 1, output) + "]"
	if num == height: return "[]"
	value = min((["[]" + generate_number(num - height, height, level + 1, output)] if height > num * 2 and abs(num - height) < num else []) + ["()" + generate_number(num - 1, height, level + 1, output)] + ["(%s)%s{}" % (generate_number(num // i, height, level + 1, output), "({})" * (i - 2)) for i in range(2, num) if num % i == 0], key = len)
	cache[(num, height)] = value
	return value

generate_number(256, 0, 0, False)

def generate_string(array):
	string = ""
	last = 0
	for height, num in enumerate(array):
		string = min("(" + string + generate_number(num - last, height) + ")", "<" + string + ">" + "(" + generate_number(num, height) + ")", key = len)
		last = num
	return string

a = lambda s: generate_string(list(map(ord, s)))

i = sys.stdin.read()
j = i[::-1]

print(min(a(j), a(i) + "{({}<>)<>}<>", key = len))

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

প্রথমে 1000 এর নীচে <your brain-flak code here>: ডি

ব্রেন-ফ্লাক , 448 বাইট

<((((((<(((<((((<((((<((((((()(()(()(()()()){}){}){}){})(()((()()[]){}){})({}){})()((()[]){}){})[()(([]){}){}])()()())>((()([])({}){}){})()((()(()()[]){}){}){})[()])()()()[])[()()()[]])>(()()([])({}){})(()(()[]){})({}){})[(()()()()()){}])()(()()()()()){})[(()()()){}])>(([])({}){})()(([]){}){})[()()()()()])[(()()()()){}])>((([])({}){}){})[((()()()()){}){}])[(()[])({}){}])()(()()()()()[])({}){})()()())[(()()()){}])(()()()()()){})>((()()()()[]){})

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

(মূলত 827 এর জন্য <your brain-flak code here>)


অনুগ্রহপূর্বক, শীঘ্রই।
যাদু অক্টোপাস উরান

@ ম্যাজিক অ্যাক্টপাস ইউরান কুল টাই: ডি
হাইপার নিউট্রিনো

আপনি এখন মোট 16222 বাইটে রয়েছেন
জো কিং

আশা 250 ভাল ছিল।
ম্যাজিক অক্টোপাস উরান

@ ম্যাজিক অ্যাক্টোপাস ইউআরএন 250 দুর্দান্ত: ডি টাইভম
হাইপারনিউট্রিনো

3

05 এ বি 1 ই , অনেকগুলি বাইট (আমার প্রথম বিএফ কিছু)

ÇεDÑDg;<èUX÷VX"()"×"(ÿ)"YX-"()"׫"(ÿ)"}»"{({}<>)({<({}[()])><>({})<>}{}<><{}><>)<>}<>"«

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


একটি প্রাক তৈরি "গুণ" ব্রেন-ফ্লাক কোড ব্যবহার করে গল্ফিংয়ের চূড়ান্ত প্রাথমিক প্রচেষ্টা। এই সমস্তটি প্রতিটি ASCII কোড পয়েন্টের জন্য সর্বাধিকতম যোগফল বিভাজক জুটিটি সন্ধান করে, তারপরে এই বিভাজনকারী উভয় জোড়াটিকে সংখ্যা হিসাবে ঠেলা দেয়। ব্রেনফ্লাক কোড ({}<>)({<({}[()])><>({})<>}{}<><{}>)তারপরে সমস্ত মান বিকল্প স্ট্যাক না হওয়া পর্যন্ত একটি লুপে সংযোজন এবং সম্পাদন করা হয়।


আমি যাদের ধন্যবাদ জানাচ্ছি তাদের তালিকা:

  • নির্দেশ করার জন্য ডিজেএমসিএমহেম (()())(()()())= ((()())())( -252 bytes)
  • কীভাবে লুপগুলি কাজ করা উচিত তা আমাকে দেখানোর জন্য ডিজেএমসিএমহেম ( -927 bytes)।

উদাহরণ গলফ <your brain-flak code here>3470 3218 2291 বাইট:

ব্রেন-ফ্লাক , 2291 বাইট

((()()()()()())()()()())
((())()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())
((()()())()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())
((()()()()()()()()())()()()())
((()()()()()())()()()()()()()()()()()()())
((()()()())()()()())
((()()()()()()())()()()()()()())
((()()()()()())()()()()()()()()()()()()())
((())()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())
((()()()()()()())()()()()()()()())
((()()()()()()()()()())())
((()()()()())()()()())
((()()()()()())()()()()()()()()()()())
((()()()()()()()()())()()())
((())()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())
((())()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())
((()()()())()()()())
((()()()()()()()()())()())
((()()())()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())
((()()()()())()()()()()()()()()()()()()()())
((())()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())
((()()()())()()()())
((()()()()()()()())()()()()())
((())()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())
((()()()()()())()()()()()()()()()()()()())
((())()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()())
((()())()()()()()()()()()()()()()()()()()()()()()()()()()()()()()){({}<>)({<({}[()])><>({})<>}{}<><{}><>)<>}<>

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


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


এখানে কয়েকটি টিপস রয়েছে: 1) আপনি যদি দুটি সংখ্যা চাপছেন (20 পাওয়ার জন্য 4 এবং 5 বলুন), তবে আপনি বাইটগুলি বাঁচাতে তাদের একসাথে ঠেলাঠেলি করতে পারেন। তুলনা করুন (()()()())(()()()()())এবং ((()()()())())2) ধ্রুবক দ্বারা গুণক এর চেয়ে অনেক কম হতে পারে push(); multiply();। উদাহরণস্বরূপ, একটি সংখ্যা দ্বিগুণ করার জন্য, আপনি (({}){})বরং এটি করতে পারেন (()())({}<>)({<({}[()])><>({})<>}{}<><{}>)। তবে এটি কোনও ভয়ানক বেসলাইন নয়। আপনি যদি আরও ইনপুট চান তবে আমি সর্বদা তৃতীয় স্ট্যাকের
জেমস

@ ডিজেএমসিমেহেম আমি সতর্কতার সাথে সংখ্যার মধ্যে ডেল্টাস ব্যবহার করতে দেখছিলাম, প্রতিটি নেতিবাচক ব-দ্বীপের পরে পুনরায় আরম্ভ করছি। তবে আমি ধারণাটিও পার্থক্যগুলির জন্য দেখতে পাচ্ছি ... আমি এটি এখন অন্তর্ভুক্ত করছি ... এটির সাথে আরও কিছু সমস্যা রয়েছে যা আমি স্থির করছি। এছাড়াও, 05AB1E কোডটি নিজেই উজ্জীবিত, এটি গুরুত্বপূর্ণ নয়, তবে আমি এটি আবারও করতে চাই।
ম্যাজিক অক্টোপাস উর্ন

স্কোর কেসগুলি এখনও বাইরে যায় নি। যখন আমি পোস্ট করব তখন এক সপ্তাহে বা 2-তে পিং লাগবে (পরীক্ষার কেস অপটিমাইজেশন সমাধান
ক্রিস্টোফার

@ ডিজেএমসিমেহেম ডেল্টাসের বিভাজনগুলি কি ভাল লাগবে?
ম্যাজিক অক্টোপাস উরান

পরীক্ষার কেসগুলি বাইরে রয়েছে
ক্রিস্টোফার

2

মস্তিষ্ক-বিমানবিধ্বংসী কামান

For each character (main loop)
(([])<{({}[()]<

Get the difference between the top two characters
(({}<>)<>[({})]<><({}<>)>)

Push an open paren on the other stack
<>(((((()()){}()){}){}){})

Retrieve difference
(<>{}<>)

Greater than zero
([(({})[(())])](<>)){({}())<>}{}{((<{}>))<>{}}{}<>{}

If
{{}

While non-zero
({

Add value if not 1
<(({})[()])>{()(<{}>)}{}

<

Divmod 2
({}(())(<()>)){({}[()]<({}([{}]()))>)}{}({}[({})])

Hold the div
({}<

Push the mod part
{({}[()]<
((((((()()){}()){}){}){})())
>)}{}

Put div down
>)

Open paren if div non-zero
(({}))
{(<({}<{}
(((((()()){}()){}){}){})
>)>)}{}

Less than 4
([([({})[()()()()](())])](<>)){({}())<>}{}{((<{}>))<>{}}{}<>{}

If
{{}

Make that many 1s
{({}[()]<
((((((()()){}()){}){}){})())
>)}{}

End if
((<()>))}{}

End loop puting number of times run on the stack
>}{})

For each close push and pop
{({}[()]<
((((()()()()()){}){}){}())(((((((()()()()()){}){}){}())){}{})()())
>)}{}

End if
((<()>))}{}

Less than zero
([([({})(())])](<>)){({}())<>}{}{((<{}>))<>{}}{}<>{}

If
{{}

([{}]<

Push open bracket
((((((()()){}()){}()){}){}()){}())

>)

While non-zero
({

Add value if not 1
<(({})[()])>{()(<{}>)}{}

<

Divmod 2
({}(())(<()>)){({}[()]<({}([{}]()))>)}{}({}[({})])

Hold the div
({}<

Push the mod part
{({}[()]<
((((((()()){}()){}){}){})())
>)}{}

Put div down
>)

Open paren if div non-zero
(({}))
{(<({}<{}
(((((()()){}()){}){}){})
>)>)}{}

Less than 4
([([({})[()()()()](())])](<>)){({}())<>}{}{((<{}>))<>{}}{}<>{}

If
{{}

Make that many 1s
{({}[()]<
((((((()()){}()){}){}){})())
>)}{}

End if
((<()>))}{}

End loop puting number of times run on the stack
>}{})

For each close push and pop
{({}[()]<
((((()()()()()){}){}){}())(((((((()()()()()){}){}){}())){}{})()())
>)}{}

Push close bracket
((((((()()){}()){}()){}()){}){}())

Endif
((<()>))}{}{}

Remove top character
<>{}

End of main loop
>)}{}{}

Close the open parens
<>>){({}[()]<(((((()()){}()){}){}){}())>)}{}

Reverse code
([]){({}[()]<({}<>)<>>)}{}<>

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

আউটপুট <your brain-flak code here>, 582 বাইট জন্য:

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