ব্যস্ত মস্তিষ্ক বিভার


13

256 টির বেশি অক্ষরের একটি ব্রেনফাক প্রোগ্রাম লিখুন যা যতটা সম্ভব পদক্ষেপ নেয় তবে অসীমভাবে লুপ করে না। প্রোগ্রামটি কোনও ইনপুট নিতে পারে না।

আরো নির্দিষ্টভাবে:

  • ডানদিকে অসীম সংখ্যক ঘর ধরে নিন।
  • একটি <যখন বামতম কোষে কিছুই করে না।
  • একটি -যখন ঘরের মান শূন্য হয় তখন সেলটি সেট করে 255
  • +-<>.কার্যকর করা হলে নির্দেশাবলী সমস্ত এক পদক্ষেপ হিসাবে গণনা করে।
  • যখন কোনও [বা ]মুখোমুখি হয়, তখন এটি একটি পদক্ষেপ হিসাবে গণনা করে। তবে, শর্তটি যদি সত্য হয় এবং নিয়ন্ত্রণ প্রবাহ ঝাঁপ দেয় তবে সংশ্লিষ্ট ]বা আবার কোনও পদক্ষেপ হিসাবে গণনা [করে না
  • সলিউশন যা সর্বাধিক পদক্ষেপ গ্রহণ করে।
  • আপনার সমাধানে যদি কোনও ধরণের প্যাটার্ন থাকে, তবে একই ধরণের প্রোগ্রামের দৈর্ঘ্যের জন্য কত পদক্ষেপ nনেওয়া হবে তার জন্য একটি অনুষ্ঠান দেওয়া প্রশংসিত তবে বাধ্যতামূলক নয়।
  • নির্দেশনা গণনা করতে, আপনি এই পরিবর্তিত দোভাষী ব্যবহার করতে পারেন :

উদাহরণ:

++[-]

সম্মুখীন নির্দেশাবলী হ'ল ++[-]-], এবং প্রোগ্রামটি 7 টি ধাপে চলে।


6
আমি বিস্মিত হই যদি বিজয়ী দোভাষীর গণনা উপচে না ফেলে সমাপ্ত হয়। মনে রাখবেন যে 6-রাজ্যের টিএম ব্যস্ত বিভারটি কমপক্ষে 10 ** 36534 পদক্ষেপ নেয়।
পিটার টেলর

আমি রাজী. মনে হচ্ছে আপনি বছরের পর বছর চলতে পারে এমন <50 চর বিএফ প্রোগ্রাম লিখতে পারেন। আমি শুরু করব
ক্যাপচার্যাগ

সাইন ইন করুন। এ ব্যস্ত বিভার গবেষণা পৃষ্ঠা drb.insel.de/~heiner/BB খুবই আকর্ষণীয়, বিশেষ করে যে রেকর্ড প্রোগ্রাম চালানোর অত্যন্ত দীর্ঘ এবং তারা এখনও সঠিক ফলাফল (দেখুন drb.insel.de/~heiner/BB/bb -xlist.txt ) - সিমিউলেশন রাজ্যের বিল্ড "ম্যাক্রো" সিমুলেশন পদক্ষেপ ইত্যাদি সংরক্ষণ করতে মনে রাখবেন
schnaader

4
@ অ্যান্টনগোভ: দুর্ভাগ্যক্রমে, এই মহাবিশ্বে, আপনি যখন 256 ^ আকারের চেয়ে বড় সাইজের বাইনামগুলিতে বাইটগুলিতে সঞ্চয় করার চেষ্টা করেন তখন এই র্যামগুলি এবং এইচডিগুলি অসীম স্টোরেজ ডিভাইসে রূপান্তরিত করে না ...
বন্ধ হয়েছে

1
@ বুথবি বর্তমান কম্পিউটারগুলিতে ট্রান্সসিডেন্টাল জড়িত নির্ভুল গণনা করা পুরোপুরি সম্ভব। মানগুলির উপাদানগুলি কেবলমাত্র সাধারণ প্রতিদিনের কম্পিউটিংয়ের জন্য ব্যবহৃত স্বাভাবিক floatবা doubleআদিমগুলির চেয়ে আরও বিমূর্ত উপস্থাপনায় সংরক্ষণ করতে হবে । (এই মুহুর্তে কম্পিউটারটি কেবল সমীকরণের প্রতিনিধিত্ব করে যে স্ট্রিংগুলি পরিচালনা করে)
এজেম্যান্সফিল্ড

উত্তর:


15

এখানে একটি 41-চরিত্রের প্রোগ্রাম রয়েছে যা শেষ পর্যন্ত থামে, 10 than (10 ↑ 28) এর বেশি সংলগ্ন কোষ 1 এর সমান সেট করে (সুতরাং সম্পাদিত নির্দেশাবলীর সংখ্যা এর চেয়ে অনেক বেশি):

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

যদি আমি ভুল না হয়ে থাকি তবে এটি বিএফ-বৈকল্পিক ভাষায় নিম্নলিখিত প্রোগ্রামটির একটি সঠিক অনুবাদ যা প্রতিটি মেমোরি কোষের জন্য একক বিট ব্যবহার করে (যেমন, সেল কন্টেন্ট ০.২৫৫ এর পরিবর্তে ০.১.৫, তাই '+' কেবল বিট-মানটি ফ্লিপ করার জন্য কাজ করে):

>+>+>+>+[+>[>]+[+>[>]+[+>[>]+[<]+<]+<]+<]

পরবর্তী প্রোগ্রাম দ্বারা উত্পাদিত সঠিক মান (সংলগ্ন 1-বিটের সংখ্যা)

3 * (2 ↑ 118842243771396506390315925503 - 1) + 1.


উপরের প্রোগ্রামটি একটি ক্রিয়াকলাপ সূচনা করে এবং 2 ation x ( নুথ আপ-তীর স্বরলিপিতে ) এর মতো বাড়ার গণনা করে । বৈকল্পিক-বিএফ প্রোগ্রামের অনুরূপ রূপান্তর যা 2 ↑ 23 x এর মতো বৃদ্ধি পাওয়া একটি ক্রিয়াকলাপ সূচনা করে এবং গণনা করে নিম্নলিখিত 256-অক্ষর প্রোগ্রাম সরবরাহ করে:

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

যা শেষ পর্যন্ত থামে, 2 ↑ 23 6 এরও বেশি সংলগ্ন ঘরগুলি 1 এর সমান সেট করে (সুতরাং পদক্ষেপের সংখ্যাটি এর চেয়ে প্রচুর পরিমাণে বেশি)।

এনবি-1 : 2 ↑ 23 6 একটি "অবিচ্ছিন্নভাবে বড়" সংখ্যা; উদাহরণস্বরূপ, এমনকি 2 ↑ 4 6 = 2 ↑↑↑↑ 6 ইতিমধ্যে গ্রাহামের সংখ্যা গণনা করতে ব্যবহৃত ক্রমের প্রথম পদটি (3 ↑↑↑↑ 3) ছাড়িয়ে গেছে ।

এনবি -২ : আমি মনে করি যে সম্ভবত বিএফ প্রোগ্রামের জন্য গ্রাহামের সংখ্যার চেয়ে অনেক বড় আউটপুট দিয়ে একটি ফাংশন শুরু করতে এবং গণনা করার জন্য 256 টি অক্ষরই যথেষ্ট - যদি আমি সময় পাই তবে সম্ভবত একটি লিখতে চেষ্টা করব।

এনবি -3 : যদি কেউ উপরের প্রোগ্রামগুলির উত্স সম্পর্কে আগ্রহী হন তবে পাইথনে লিখিত বিভিন্ন প্রোগ্রাম সহ "ব্রেইনফ * সি কে এফ" এর জন্য কিছু প্রোগ্রামিং সংস্থান এখানে রয়েছে । ("ব্রেইনফ * সি কে এফ", বা কেবল "এফ", যাকে আমি স্মলফ * সি কে এসল্যাংলোজির টুরিং-সম্পূর্ণ রূপটি বলেছি)) আমি এই মুহূর্তে এই ফাইলগুলি আপলোড করেছি যা বেশ কয়েক বছর ধরে অফলাইনে রয়েছে এবং আপাতত লিঙ্কযুক্ত ওয়েবপৃষ্ঠাটি কেবল একটি "ফাইল ক্যাবিনেট" - উপরের প্রোগ্রামগুলির সাথে সম্পর্কিত বিশদ আলোচনার জন্য ব্যাসি_বিয়ার্স.টিএসটি ফাইলটি দেখুন।


এটি এই মুহূর্তে একটি স্পষ্ট বিজয়ী (যদি না আমি কেবল অন্যদেরকে অবমূল্যায়ন করি)) আরও পরামর্শ খুব স্বাগত, কিন্তু আমি এটি আপাতত গৃহীত হিসাবে চিহ্নিত করব। কেউ যদি মতানৈক্য করেন, দয়া করে মন্তব্য করুন।
আন্তন গোলভ

আপনি যখন এই স্তরে পৌঁছবেন, তখন অনুমান করা অবাস্তব হয়ে যায় যে আপনার অসীম স্মৃতিশক্তি রয়েছে। আমি মনে করতে শুরু করি যে এটি সীমাবদ্ধ মোড়ানোর মেমরির সাথে আরও ভাল চ্যালেঞ্জ হবে, সুতরাং আমরা উত্তরগুলি আসলে চালাতে পারি।
ক্যাপচার্যাগ

9

এখানে একটি 39 টি সুন্দর চরিত্র রয়েছে:

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

এটি মূলত একটি 3 স্পেস প্রশস্ত 'স্লেড' তৈরি করে যে এটি ডানদিকে সরায় এবং একে একে হ্রাস পায়। অন্তর্হীন লুপ 256 ^ 3 বার চালানো সহ 31,919,535,558 নির্দেশাবলীতে সম্পূর্ণ হয়েছে। আমার কাছে এখনও যথেষ্ট পরিমাণে আছে এটি চালানোর সময়ের আরও একটি ক্রমের 14 টি অক্ষরের হারে প্রসারিত করার জন্য।

আনবাউন্ডেড মেমোরি, বা মোড়ানো মেমরির সাহায্যে যে কোনও দোভাষীর কাজ করে।

2 লুপের উন্নত সংস্করণ কখন শেষ হবে তা নির্ধারণ করার জন্য আমি এটি পাঠকের কাছে একটি অনুশীলন রেখেছি:

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

এটি এখন রাতারাতি চলেছে এবং এটি 3,000,000,000 পদক্ষেপেরও বেশি। এখনও বাহ্যিক লুপের একক পুনরাবৃত্তি অর্জন করতে পারেনি। সবেমাত্র এটি দ্বিতীয় লুপের 15% এর মাধ্যমে তৈরি করেছে।


2

এই প্রোগ্রামগুলি সংখ্যক কোষে কাজ করে। আসকি মান 255 দিয়ে শুরু করে দুটি মান শুরু করা হয় main মূল লুপের প্রথম আবর্তনের প্রথম মানটি 255 কোষে বিভক্ত হয় এবং তারা 255 কোষে প্রতিটি লুপের দ্বিতীয় ঘূর্ণায় আবার 255 কোষে প্রতিটি মানকে বিভাজন করে শুরু করে 255 * 255 সেল পর্যন্ত, মূল লুপের 255 ঘূর্ণনের জন্য একই পদ্ধতিতে শুরু হওয়া মোট কোষ 255 ^ 255 হবে। দ্বিতীয় মানটি নির্ধারণ করে যে প্রধান লুপটি কতবার পুনরাবৃত্তি করতে হবে।

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

2

এই প্রোগ্রামটি আমার পূর্ববর্তী প্রোগ্রামের মতো প্রায় একই, পার্থক্যটি হ'ল বাইরের লুপ নির্ধারণ করার মানটি একটি নির্দিষ্ট কক্ষে স্থির থাকে তাই প্রোগ্রামের শেষে উভয় কোষের সংখ্যা এবং মোট পদক্ষেপগুলি বাড়ানো যায়

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

প্রোগ্রামগুলি 255 ^ 255 এর শেষে কক্ষগুলি সূচনা করা হয়েছিল

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

কোষগুলি প্রোগ্রামের শেষে 255 ^ 255 ^ 3 শুরু করে

আরও বেশি পদক্ষেপের জন্য চালানোর জন্য আমি এটিকে আরও সংশোধন করেছি।

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

এটি মূল লুপের তৃতীয় ঘূর্ণনের সময় প্রধান লুপ 255 ^ {255 ^ (255 ^ 255 * 255) * 255} কোষগুলির প্রথম ঘূর্ণনের সময় প্রধান 255 ^ (255 ^ 255 * 255) কোষের প্রথম ঘূর্ণনের সময় 255 ^ 255 কোষ শুরু করে এইভাবে লুপটি 255 বার পুনরাবৃত্তি করে


দুর্দান্ত লাগছে! এখনও কোনও উত্তর গ্রহণ না করার জন্য দুঃখিত - আমি এগুলি দেখার জন্য কিছুটা সময় নিয়েছি এবং বৃদ্ধির ক্রমটি বের করতে পেরেছি। আপনি যখন "255 ^ 255 * 255" বলছেন, আপনি কি "255 ^ (255 * 255)" বলতে চান? (আমি অন্যথায় "255 ^ 256" আশা করতাম))
আন্তন গোলভ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.