গডেলকে তার β ফাংশন [বন্ধ] সাহায্য করুন


13

গডেলের β ফাংশনটি আর্গুমেন্ট হিসাবে তিনটি প্রাকৃতিক সংখ্যা নেয়।

এটি হিসাবে সংজ্ঞায়িত করা হয় β(x,y,z) = rem(x, 1 + (z + 1) · y) = rem(x, (z · y + y + 1) )

যেখানে রেম (ক, খ) খ দ্বারা খ এর পূর্ণসংখ্যা বিভাগের পরে অবশিষ্টটিকে বোঝায়।

Β লেমায় এখন বলা হয়েছে:

প্রাকৃতিক সংখ্যার যেকোন অনুক্রমের জন্য (k_0, k_1,…, কে_এন), বি এবং সি এর মতো প্রাকৃতিক সংখ্যা রয়েছে যা প্রতিটি আই ≤ n, β (বি, সি, আই) = কে_আই এর জন্য।

গডেলের অনুসন্ধানের জন্য bএবং cপ্রদত্ত যে কোনও ইনপুটটির জন্য সহায়তা প্রয়োজন (k_0, k_1, … , k_n), k_i ∈ ℕ


এমন একটি ফাংশন লিখুন যা দৈর্ঘ্যের অ্যারে নেয় n, প্রাকৃতিক সংখ্যায় ভরা থাকে এবং একটি সম্ভাব্য b,cআউটপুট দেয় যা অ্যারের জন্য লেমাকে পূর্ণ করে।


নিষ্ঠুর শক্তি দিয়ে সমাধান পান না!

(আমার সম্পূর্ণ অপেশাদারী মতামত অনুসারে, আপনি প্রথমে একটি নম্বর পেয়ে তারপরে হিসাবটি করেন তা নিষ্ঠুর শক্তি That এটি সংখ্যাটি অনুমান করে এবং তারপরে অনুমানটি সঠিক ছিল কিনা তা সন্ধান করা I আমি এখানে কোডিং করতে চাই যা একটি সমাধান যা গণনা করে সংখ্যা এবং তারা লেমাকে পূরণ করে কিনা তা পরীক্ষা করে দেখার দরকার নেই কারণ এটি করার জন্য তাদের গণনা করা হয়েছিল))

তাদের দেওয়া সমীকরণ এবং তথ্য দিয়ে তাদের তৈরি করুন। সংক্ষিপ্ত কোড জিতেছে, বোনাস পয়েন্টগুলি যদি আপনি এটি করেন Javascriptতবে আমি এটির মধ্যেই চলেছি:)


উদাহরণ:

[5, 19, 7, 8] -> (1344595, 19)
1344505 % (1 + (0 + 1) * 19) = 5
1344505 % (1 + (1 + 1) * 19) = 19
1344505 % (1 + (2 + 1) * 19) = 7
1344505 % (1 + (3 + 1) * 19) = 8

5
পিপিসিজিতে আপনাকে স্বাগতম! এটি একটি দুর্দান্ত প্রথম প্রশ্ন, তবে আমি আরও পরীক্ষার কেসগুলি আরও স্পষ্ট করার জন্য যুক্ত করার পরামর্শ দেব।
লাইকোনি

4
@ তুইয়াকিম্প এমনকি তবুও, একটি একক কাজের উদাহরণ বরং আনুষ্ঠানিক সংজ্ঞাটি পরিষ্কার করতে সহায়তা করতে পারে।
মার্টিন এন্ডার


1
এটি "ব্রুট ফোর্স" হিসাবে কী যোগ্যতা অর্জন করে তা পরিষ্কার নয়। স্পষ্টতই একটি দৃষ্টিভঙ্গি যা সমস্ত জোড়ার মধ্য দিয়ে পুনরাবৃত্তি করে (b, c)যতক্ষণ না এটি আবিষ্কার করে যে কোনটি কাজ করে তা নিষ্ঠুর শক্তি হবে এবং যে পদ্ধতিটি ইনপুটটির দৈর্ঘ্যে সময়রেখায় সঞ্চালিত হবে তা নয়, তবে এর মধ্যে একটি বিশাল ব্যবধান রয়েছে। রেখাটি কোথায় আঁকা?
পিটার টেলর

6
কেউ কি বলে বেটা?
বিটা ক্ষয়

উত্তর:


3

জাভাস্ক্রিপ্ট (ES6), 104 বাইট

a=>[c=a.reduce(c=>c*++i,Math.max(...a),i=0),a.reduce(g=(x,k)=>x%m-k?g(x+n,k):(n*=m,m+=c,x),0,n=1,m=c+1)]

[c, b]অ্যারে হিসাবে ফিরে আসে । সমাধান এটা ফেরৎ মধ্যে ন্যূনতম নয় cকিন্তু আমার মনে হয় এটা মধ্যে সংক্ষিপ্ত bদেওয়া c। 120 বাইটের জন্য এটি প্রদত্তগুলির জন্য সর্বনিম্ন cএবং মধ্যে সমাধানগুলি bদেয় c:

f=(a,c=1,b=a.reduce(g=(x,k)=>x%m-k?d--?g(x+n,k):0/0:n%m?g(x,k,n+=o):(o=n,d=m+=c,x),0,o=n=1,d=m=c+1))=>1/b?[b,c]:f(a,c+1)

অব্যক্ত ন্যূনতম সমাধান দ্রাবক:

function godel(a) {
    for (c = 0;; c++) {
        var b = 0, n = 1, i = 0;
        for (;;) {
            var m = c * i + c + 1;
            // Increase b until β(b,c,i) = a[i]
            // Adding n won't change output for smaller i
            for (j = 0; j < m; j++) if (b % m != a[i]) b += n;
            if (j == m) break; // couldn't find a remainder, c too low
            i++;
            if (i == a.length) return [b, c]; // Result!
            // Next time we want adding n to b not to change β(b,c,i)
            for (j = 1; n * j % m != 0; j++);
            n *= j;
        }
    }
}

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