বড় পূর্ণসংখ্যার ফ্যাক্টরিংকে কেন কঠিন বিবেচনা করা হয়?


17

কোথাও পড়ি যে সবচেয়ে বেশি কার্যকরী অ্যালগরিদম পাওয়া যায় কারণের গনা করতে সময়, কিন্তু কোড আমি লিখেছেন হে ( ) বা সম্ভবত ডি ( ডি লগ এন ) কত দ্রুত বিভাগ এবং মডিউলাসের উপর নির্ভর করে pretty আমি নিশ্চিত যে আমি কোথাও কিছু ভুল বুঝেছি, তবে আমি নিশ্চিত নই। আমি সিউডো কোড আকারে যা লিখেছি তা এখানে।O(exp((64/9b)1/3(logb)2/3)O(n)O(nlogn)

function factor(number) -> list
    factors = new list
    if number < 0
        factors.append(-1)
        number = -number
    i = 2
    while i <= number
        while number % i == 0
            factors.append(i)
            number /= i
        i++
    return factors

3
গুগল "সিউডো পলিনোমিয়াল"।
রাফেল

সেই অ্যালগরিদমটি আসলে খুব ধীর - যদি সংখ্যাটি আখ্যায়িত (সংখ্যা) বারের সময় লুপ হয় is একটি খুব সাধারণ যুক্তি রয়েছে যা আপনাকে স্কয়ার্ট (সংখ্যা) পুনরাবৃত্তির সাথে দূরে সরে যেতে দেয়।
gnasher729

উত্তর:


26

আপনি সংখ্যা বিভ্রান্তিকর হয় প্রতিনিধিত্ব করা প্রয়োজন বিট নম্বর দিয়ে এন । এখানে = এন উপস্থাপনের জন্য প্রয়োজনীয় বিটের সংখ্যা (সুতরাং বি এলজি এন )। এটি একটি বিশাল পার্থক্য করে তোলে। একটি হে ( এন ) -কালীন অ্যালগরিদম হ'ল একটি ( 2 ) -কালীন অ্যালগরিদম - বিটের সংখ্যায় সূচকীয়। তুলনায়, "দক্ষ" অ্যালগরিদম আপনি খুঁজে পেয়েছেন একটি চলমান সময় যা মধ্যে subexponational হয় ।nnb=nblgnO(n)O(2b)b

উদাহরণ: (2 মিলিয়ন) বিবেচনা করুন। তারপরে b = 21 বিট সংখ্যা n উপস্থাপনের জন্য যথেষ্ট । সুতরাং, একটি আলগোরিদিম যে হে ( 2 1 / 3 ) অনেক দ্রুত একটি আলগোরিদিম যে চেয়ে থাকবে হে ( 2 ) । একটি ( এন ) অ্যালগরিদম পরবর্তী শ্রেণিতে পড়ে, অর্থাত্ খুব ধীর।n=2,000,000b=21nO(2b1/3)O(2b)O(n)

Https://en.wikedia.org/wiki/Integer_factorization দেখুন


1
আমি জানতাম এটি এমন কিছু সহজ।
এন্ডারশ্যাডো

3
b>1,000n>21,000O(n)n21,000

1

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

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

এখন পর্যন্ত এই কী সাবজে কোনও দুর্দান্ত সমীক্ষা খুঁজে পাওয়া যায় নি। তবে দেখুন


আরেকটি সম্ভাব্য কিছুটা আপাতদৃষ্টিতে "এজ-কেস" পরিস্থিতিটি হ'ল ফ্যাক্টরিং পিতে থাকতে পারে তবে এখনও কোনও বাস্তব অ্যালগরিদম নেই। ওরফে গ্যালাকটিক অ্যালগরিদম
vzn

এটি উল্লেখ করা উচিত যে আরএসএ দুটি বৃহত প্রাইমের পণ্য ফ্যাক্টর করার বিষয়ে (যেখানে কেউ প্রাইমগুলি জানে এবং কেবল তাদের গুণিত করে, এবং অন্য কাউকে পণ্য দেওয়া হয় এবং প্রাইমগুলি সন্ধান করার কথা রয়েছে)। এটি অনুমেয় যে এখানে কোনও অ্যালগরিদম হতে পারে যা দুটি বড় প্রাইমের পণ্য তৈরি করতে পারে তবে দুটি বৃহত প্রধানের পণ্য নয়। ঠিক তেমনি সংখ্যার ফ্যাক্টরিং যেমন বড় প্রাইম হয় (তবে বড় প্রাইম হওয়ার আগে জানা ছিল না) বহুপক্ষীয় সময়ে করা যেতে পারে।
gnasher729
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.