ট্রেসলেস ব্যস্ত বিভার


20

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

ব্যস্ত বিভার গেমটি খেলতে আমাদের একটি নতুন উপায় দরকার, যা আমাদের ব্যবহার করা প্রতিটি টেপ নষ্ট করে না।

নিয়ম

ব্রেইনফাক মেমোরি টেপ উভয় উপায়ে সীমাহীন। ইনপুট নির্দেশাবলী সর্বদা পড়বে , সুতরাং এটি কোনও মান সাফ করার জন্য ব্যবহার করা যেতে পারে।0

50 বাইট উত্স সীমা।

এক্সিকিউশন শেষে মেমরির সমস্ত টি হতে হবে ।0

স্কোর মেমরির পয়েন্টার এর শুরু অবস্থান এবং চূড়ান্ত অবস্থান মধ্যে দূরত্ব - যদি এটা লাগে নির্দেশাবলী সরাতে তাদের মধ্যে করার জন্য, আপনার স্কোর হল এন । উঁচুই ভালো. আপনি যদি পারেন তবে একটি সঠিক মান সরবরাহ করুন, অন্যথায় একটি অনুমান সরবরাহ করুন।এনএন

উদাহরণ

32 বাইট, 2255-1

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

ব্যাখ্যা

-                                Initialize the list to [255].
 [                             ] Repeat as long as the list is not empty.
 [-                            ] Decrement the left end. We need to shrink the numbers so it ends eventually.
 [ [                         ] ] Skip if 0 already.
 [ [[>]                      ] ] Move to the cell past the right end.
 [ [   +                     ] ] Make this cell 1.
 [ [    >                    ] ] Go right again.
 [ [     +                   ] ] Make this cell 1. We've now appended [1, 1].
 [ [      [<]>               ] ] Go back to the first nonzero cell on the left.
 [ [          -              ] ] And decrement it.
 [ [           [            ]] ] We will need to transfer the rest of the number from the left to the right, so keep looping.
 [ [           [[>]<        ]] ] Go to the last nonzero cell on the right.
 [ [           [    +<+     ]] ] Increment this and the one on the left. These are the cells we appended earlier. We transfer to them.
 [ [           [       [<]> ]] ] Go back to the first nonzero cell on the left, which we are transferring from.
 [ [           [           -]] ] Decrement here on the left to balance out the incrementing on the right.
 [                            >] We end the iteration on a now empty cell. Move right, the new left end is there.

আমরা তালিকাটি দিয়ে শুরু করি । প্রতিটি পুনরাবৃত্তিতে আমরা তালিকার বামে মান n গ্রাস করি এবং যদি n > 1 হয় তবে আমরা [ n - 1 , n - 1 ] ডানদিকে যুক্ত করব। সংখ্যার যোগ ( এন - 1 ) মূল চেয়ে কম ( এন ) , তাই তারা ছোট যতক্ষণ না তারা হয় পাবেন 1 , যা এ নির্দেশ তারা বিস্তৃত ছাড়া খাওয়া হয়। সুতরাং, প্রক্রিয়াটি শেষ পর্যন্ত সমস্ত 0 দিয়ে শেষ হয়[255]এনএন>1[এন-1,এন-1](এন-1)(এন)10স্মৃতিতে এস। যাইহোক, প্রতিটি পদক্ষেপে, সংখ্যার অনুলিপিগুলি দ্বিগুণ হয়। এই প্রোগ্রাম তালিকা সঙ্গে সক্রিয়া এর স্কোর হয় 2 এন - 1[এন]2এন-1

এই উদাহরণটি জমা দেওয়ার ক্ষেত্রে ব্যবহৃত কয়েকটি কৌশল দেখানোর জন্য বোঝানো হয়েছে। এটি এর আকারের জন্য প্রতিযোগিতামূলক নয়।


3
@ ওক্স কোনও সমস্যা নেই - এটি সমালোচনা হিসাবে নয়। যদি এটির স্কোর করার অন্য কোনও উপায় থাকে যা নির্বিচারে কোডের দৈর্ঘ্যকে মঞ্জুরি দেয় তবে উত্তরগুলি আসার আগে এখন এটি সন্ধানের সময় এসেছে I'm আমি কোডটি গল্ফ ট্যাগকে বিভ্রান্ত করছে বলেই আমি এটি আবার চালু করতে যাচ্ছি
ট্রিকপলাক্স

3
আরও কিছু সীমাবদ্ধতা থাকতে হবে, যেহেতু আরও বাইট আপনাকে দ্রুত বর্ধনশীল ক্রিয়াটি সংজ্ঞায়িত করতে দেয়। 50 এর জন্য বিশেষত কোনও কারণ নেই, এটি কিছু শালীন বিকাশের জন্য যথেষ্ট উচ্চ দেখায় (অবশ্যই আমার উদাহরণের তাত্পর্যমূলক তুলনায় ভাল) এবং সৃজনশীল সমাধানের জন্য তবে বেকলেমিশেভের কৃমি বা অন্যান্য অত্যন্ত দ্রুত বৃদ্ধির জন্য এখনও খুব ছোট। // যাইহোক আমার ট্যাগগুলি ঠিক করার জন্য ধন্যবাদ, আমি এটি পেতে কিছুটা ছুটে এসেছি।
EPICI

2
কেবল ব্যাকগ্রাউন্ডের জন্য: আমরা কোড গল্ফের জন্য ন্যূনতম স্কোরগুলি এড়াতে চেষ্টা করি , তবে এই চ্যালেঞ্জটি কোড গল্ফ নয়, এবং বাইটের সংখ্যা স্কোর নয়, তাই আমি এই ক্ষেত্রে 50 বাইট সীমা থাকাতে একেবারেই কোনও সমস্যা দেখছি না।
ট্রিকোপল্যাক্স

1
তথ্য: আমি মনে করি আমি অন্যান্য চ্যালেঞ্জ থেকে এই উত্তরটিকে "তুচ্ছভাবে পোর্ট" করতে এবং অনুরূপ স্কোর পেতে পারি।
ব্যবহারকারী 202729

1
@ ইপিকি আমার পূর্ববর্তী ব্যস্ততাটি ইতিমধ্যে অনর্থক ছিল , এ কারণেই আমি এটি খাপ খাইয়ে নেওয়ার চেষ্টা করছিলাম।
জো কিং

উত্তর:


10

একজন(255,2)-1=(22535)-4

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

একজন[-[<+>>[-<[->+<]+>>]+<-]>[>]+[<]+<]একজন(মি,এন)1 - m, m, 1 <n times>mএকজন(মি,এন)

আমি প্রোগ্রামটির আচরণের মডেলিংয়ের জন্য নিম্নলিখিত পাইথন প্রোগ্রামটি ব্যবহার করেছি:

def a(M, N):
    assert M > 0
    m = [-M + 1, M]
    n = N
    while m[-1]:
        while m[-1] > 1:
            m[-1] -= 1
            m[-2] += 1
            while n:
                m.insert(-1, 1)
                n -= 1
            n = 1
        n += 2
        m.pop()
    return n

1
আপনি একটি পিছনে যুক্ত করে আপনার স্কোর বাড়াতে পারে >
জোনাথন ফ্রেচ

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