ব্রেইনফাক দিয়ে 1000 বার 'এ' মুদ্রণ করুন


12

'এ' 1000 বার মুদ্রণের জন্য সেরা ব্রেনফাক কোড (কোড আকারের নিরিখে) কী?

আমার পদ্ধতিটি হ'ল:

  • 'এ' পি তে সেট করুন [0]
  • 255 'এ' প্রদর্শন করতে 255 থেকে পি [1] সেট করুন, 3 বার
  • 235 'এ' প্রদর্শন করতে 235-তে সেট করুন [1]

এটি কার্যকর নয় তবে আমি গুণনের মতো টো কাউন্টারগুলি একই সাথে ব্যবহার করার কোনও উপায় খুঁজে পাচ্ছি না

একটি গুণ এর চেয়ে ভাল পদ্ধতির আছে?

আরও সাধারণ প্রশ্ন: ক্ষুদ্রতম সম্ভাব্য কোড সহ একটি বৃহত সংখ্যার সাথে গুণ করার কোনও নিয়ম আছে?


4
এটি শুরু করার জন্য একটি ভাল জায়গা। কোড গল্ফ স্বাগতম! :)
FryAmTheEggman

3
আমি মনে করি আপনি কেবল নেস্টেড লুপটি ব্যবহার করতে চান তবে আমি বিএফকে খুব ভাল জানি না। আপনি ব্রেনফাক টিপস দেখেছেন ? এছাড়াও সম্ভবত উপর esolangs পৃষ্ঠা Brainfuck ধ্রুবক এখানে একটি দরকারী সম্পদ হবে।
জোনাথন অ্যালান

4
আমি মনে করি আপনার সেরা ব্রেইনফাক কোডটি স্পষ্ট করা উচিত । আপনি কি সর্বাধিক পঠনযোগ্য, সবচেয়ে মার্জিত, সর্বনিম্ন পরিমাণে +অক্ষর বা কেবল সর্বোচ্চ ব্রেভিটি ব্যবহার করে অনুসন্ধান করছেন?
জোনাথন ফ্রেচ

@ জোনাথন অ্যালান: হ্যাঁ, এই প্রশ্নের উদ্দেশ্য: কীভাবে নেস্টেড লুপটি ব্যবহার করবেন। এটি ASM কাছাকাছি একটি চিত্তাকর্ষক ভাষা কিন্তু আমি কিছু দিক বুঝতে পারি না
নেলসন জি

আমি কি এই বৈকল্পিকটি BF -> github.com/gergoerdi/brainfuck64 এ
শন বেবারস

উত্তর:


17

আপনি বর্তমানে যে পদ্ধতিটি ব্যবহার করছেন বলে মনে হচ্ছে তা 39 বাইট:

>>+++[<-[-<.>]>-]++++[<----->-]<-[-<.>](পাওয়ার সাথে জড়িত নয় A) ( এটি অনলাইনে চেষ্টা করুন! )

(3 বার লুপ করুন, প্রতিবার 255 এ কাউন্টারটি সেট করুন এবং এটি বহুবার মুদ্রণ করুন, তারপরে 20 বিয়োগ করুন, 1 বিয়োগ করুন এবং বহুবার মুদ্রণ করুন)

তবে, 250 বার লুপ করা এবং প্রতিবার 4 বার মুদ্রণ করা অনেক ছোট (জিমি 23013 কে আমার আসল লুপ -4 লুপ -250 মুদ্রণ -1 সমাধানের জন্য এটি অনুকূলিতকরণের জন্য ধন্যবাদ):

>------[<....>-] (16 বাইট)

যদি আপনার কোষগুলি সীমাহীন হয় (আমি ধরে নিচ্ছি যে তারা 8-বিট হয়েছে অন্যথায় আপনি সম্ভবত গল্ফিংয়ের জন্য 255 ব্যবহার করার চেষ্টা করবেন না):

>>++++++++++[<++++++++++[<..........>-]>-] (42 বাইট)


এটি 8-বিট কোষ
জন ডিভোরাক

2
@ জনডভোরাক: ওপি ভাবতে পারে এমন সবচেয়ে কার্যকর সমাধানের অংশ হিসাবে প্রশ্নটিতে কোষগুলি 255 স্থাপনের কথা বলা হয়েছে। এটি 8-বিট ঘর মোড়ক ব্যবহার (আব) এর বেশ পরিষ্কার ইঙ্গিত বলে মনে হচ্ছে।
এলোমেলোভাবে 999

@ জনডভোরাক এলোমেলো ডিউড৯৯৯ কি বলেছে, তবে কোষগুলি সীমাহীন হওয়ার ক্ষেত্রে আমি 10x10x10 ব্যবহার করে একটি পদ্ধতি যুক্ত করেছি।
হাইপারনিউটারিনো

250 বার ....সংক্ষিপ্ত হবে।
jimmy23013

@ জিমি ২৩০১৩ ... নিশ্চিত না যে আমি কীভাবে এটি ভাবিনি যে এই এলএল করার জন্য আমার 10x10x10 সমাধানটি এখনও অনুকূলিত করে তুলেছে। ধন্যবাদ!
হাইপারনিউটারিনো

1

47 বাইটস (কোনও আন্ডারফ্লো নেই)

আমি স্রেফ 47 বাইটে এই সমাধানটি করেছি। আমি সাধারণত দুটি মূল্যবোধের মধ্যে কাউন্টার জাগল করে স্থান বাঁচানোর চেষ্টা করার চেয়ে ভিন্নভাবে চেষ্টা করেছি। এটি ধরে নেওয়া হয় যে এ পি [4] এ প্রিলোডড।

+++++[>++++>+++++<<-]>[>[>+>.<<-]>[->.<<+>]<<-]

ব্যাখ্যা

Place 5 into p[0]
+++++
Loop 5 times to put p[1]=20, p[2]=25
[>++++>+++++<<-]>
Loop 20 times
[>
Move pointer to p[2] and loop 25 times.
Also move p[2] to p[3]

[
Increment p[3] from 0, effectively moving the value from p[2] to p[3]
>+
Print p[4]
>.
Decrement p[2]
<<-]
Shift over to p[3]
>
[
Decrement p[3]
->
Print p[4]
.<
Increment p[2]
<+>]
Move back to p[1] and decrement
<<-
Repeat until p[1] is 0
]

1

'এ' এর জন্য 65 নম্বর পাওয়ার সংক্ষিপ্ততম >+[+[<]>>+<+]>উপায়টি এবং এরপরে আপনি কেবল >------[<....>-]তার শেষে হাইপারনিউটারিন যুক্ত করুন । সুতরাং সম্পূর্ণ কোড হয়ে যায় >+[+[<]>>+<+]>>------[<....>-](30 বাইট)


আপনি কিভাবে জানেন যে উপায়টি সবচেয়ে কম? এটি অবশ্যই সংক্ষিপ্ত, তবে আপনি কি নিশ্চিতরূপে জানেন যে কোনটিই একটি সংক্ষিপ্তর খুঁজে পাবে?
অ্যাডহক গার্ফ হান্টার


@ শ্রুতচিলিজম ওজাইক হ্যাঁ আমি সত্যিই বলতে চাইনি যে এটি সবচেয়ে সংক্ষিপ্ত লোকসত্তা
ধনু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.