নেতিবাচক এক্সওআর প্রাইমস


9

প্রায় এক বছর আগে আপনাকে এক্সওআর প্রাইমস খুঁজতে বলা হয়েছিল । এই নম্বর যার শুধুমাত্র কারণের 1 হয় এবং নিজেদের করণ যখন হয় বেস 2 XOR যাও গুণ । এখন কিছুটা মশলাদার জিনিস যাচ্ছিল।

আমরা বেস -2-তে XOR প্রাইমগুলি সন্ধান করতে যাচ্ছি

বেস -২ এ রূপান্তর করা

বেস -২ অনেকটা অন্যান্য বেসের মতো। বামে সর্বাধিক স্থানটি হ'ল 1 স্থান (1 = (-2) 0 ), তার পাশে তার -2 স্থান (-2 = (-2) 1 ), এর পাশের 4s স্থান (4 = (-2) ) 2 ), এবং আরও অনেক কিছু। বড় পার্থক্য হ'ল negativeণাত্মক সংখ্যাগুলি কোনও নেতিবাচক চিহ্ন ছাড়াই বেস -২ এ উপস্থাপন করা যেতে পারে।

এখানে কয়েকটি উদাহরণ রূপান্তর রয়েছে:

Decimal | Base -2
-----------------
 6      |   11010
-7      |    1001
 12     |   11100
-15     |  110001

বেস -২ এ এক্সওআর সংযোজন

বেস -২ এ এক্সওআর সংযোজন বাইনারিতে এক্সওআর সংযোজনের মতো প্রায় একই। আপনি কেবল প্রতিটি সংখ্যাটিতে বেস -2 এবং এক্সওআরটিতে স্থান পরিবর্তন করতে পারেন। (এটি বহন ছাড়া যুক্ত হিসাবে একই)

এখানে ধাপে ধাপে কাজ করা একটি উদাহরণ রয়েছে:

( +'বেস -২ এক্সওআর সংযোজনটি চিহ্নিত করতে আমরা প্রতীকটি ব্যবহার করব )

বেস 10 এ শুরু করুন:

6 +' -19

বেস -2 এ রূপান্তর করুন:

11010 +' 10111

বহন ছাড়াই এগুলি যুক্ত করুন:

   11010
+' 10111
---------
   01101

আপনার ফলাফলটিকে বেস 10 এ রূপান্তর করুন:

-3

বেস -২ এ XOR গুণ

আবার বেস -২ এ এক্সওএর গুণনটি বাইনারিতে এক্সওআর গুণনের প্রায় একই। যদি আপনি বেস 2 তে এক্সওর গুণনের সাথে পরিচিত না হন তবে এখানে একটি দুর্দান্ত ব্যাখ্যা রয়েছে I আমি আপনাকে পরামর্শ দিই যে প্রথমে এটি একবার দেখুন।

বেস -২ এ এক্সওআর গুণনটি বেস -২ এ দীর্ঘ গুণ করা হিসাবে সমান যেমন +আপনি +'উপরের সংজ্ঞায়িত আমরা যে সংজ্ঞাটি ব্যবহার করে সেগুলি দিয়ে সমস্ত সংখ্যার যোগ করার পরিবর্তে শেষ ধাপে আসে ।

এখানে নীচে কাজ করা একটি উদাহরণ রয়েছে:

দশমিক শুরু:

8 *' 7

বেস -2 এ রূপান্তর করুন:

11000 *' 11011

দীর্ঘ বিভাগ স্থাপন করুন:

   11000
*' 11011
---------

দ্বিতীয়টিতে প্রতিটি জায়গা দিয়ে প্রথম সংখ্যাটি গুণ করুন

      11000
*'    11011
------------
      11000
     11000
        0
   11000
  11000

বেস -2 এক্সওআর সংযোজন ব্যবহার করে সমস্ত ফলাফল যুক্ত করুন

       11000
*'     11011
-------------
       11000
      11000
         0
    11000
+' 11000
-------------
   101101000

ফলটিকে দশমিক দশকে ফিরিয়ে আনুন:

280

চ্যালেঞ্জ

আপনার চ্যালেঞ্জটি হ'ল বেজ -২ এ কোনও নম্বর একটি এক্সওআর প্রাইম কিনা তা যাচাই করা। সংখ্যাটি বেস -২ এ একটি এক্সওআর প্রাইম হয় যদি বেজে এটির সাথে একক সংখ্যাটি গুণক হয় তবে এটি 1 এবং নিজেই হয়। (1 প্রধান নয়)

আপনি যদি একটি নম্বর এবং বেসিয়ান আউটপুট নিতে পারেন সত্য যদি ইনপুটটি বেস -2 মিথ্যাতে অন্যথায় অন্যথায় XOR প্রাইম হয়।

লক্ষ্য হিসাবে সর্বনিম্ন সংখ্যা বাইট অর্জনের সাথে বাইটসগুলিতে সমাধান করা হবে।

পরীক্ষার মামলা

নীচে বেস -2 এ সমস্ত এক্সওআর প্রাইম রয়েছে:

-395
-3
-2
 3
 15
 83

নিম্নলিখিতটি বেস -২ এ এক্সওআর প্রাইম নয় :

-500
-4
 0
 1
 258
 280

258সমান বলে মনে হচ্ছে-2 *' -129 = 10 *' 10000011
JungHwan Min Min

@ জংহওয়ানমিন আমার খারাপ যে একজনের অন্য বিভাগে থাকার কথা। যদি এটি আপনার কোনও সমস্যা করে থাকে তবে আমি ক্ষমা চাই।
অ্যাডহক গার্ফ হান্টার

উত্তর:


3

গণিত, 156 101 বাইট

IrreduciblePolynomialQ[FromDigits[{#}//.{a_,p___}/;a!=1&&a!=0:>{-⌊a/2⌋,a~Mod~2,p},x],Modulus->2]&

এখানে যেমন বলা হয়েছে , এটি কাজ করে কারণ এক্সওআর গুণনটি মূলত বহুপদী রিং এফ 2 এর গুণক।

ব্যাখ্যা

{#}//.{a_,p___}/;a!=1&&a!=0:>{-⌊a/2⌋,a~Mod~2,p}

দিয়ে শুরু {input}। মোড 2 এবং প্রিপেন্ড-ফ্লোর ( / 2) aদ্বারা বারবার একটি সংখ্যা (0 এবং 1 ব্যতীত) প্রতিস্থাপন করুন , যতক্ষণ না এটি পরিবর্তন হয় না। এটি বেস -2 ইনপুট গণনা করে।aa

FromDigits[ ... ,x]

xভেরিয়েবল হিসাবে ব্যবহার করে বেস -2 সংখ্যার অঙ্কগুলি ব্যবহার করে একটি বহুবচন তৈরি করুন । যেমন {1, 1, 0}->x^2 + x

IrreduciblePolynomialQ[ ... ,Modulus->2]

মডুলাস 2 সহ ফলাফলযুক্ত বহুবর্ষ অপরিবর্তনীয় কিনা তা পরীক্ষা করে দেখুন।

পুরানো সংস্করণ (156 বাইট)

If[#==1,1,Outer[FromDigits[BitXor@@(#~ArrayPad~{i++,--l}&)/@Outer[i=0;l=m;1##&,##],-2]&,k=Tuples[{0,1},m=Floor@Log2[8Abs@#~Max~1]]~Drop~{2},k,1,1]]~FreeQ~#&

প্রাইমদের তালিকা

-1000 এবং 1000 (পেস্টবিন) এর মধ্যে বেস -2 এক্সওআর প্রাইমগুলির একটি তালিকা এখানে রয়েছে

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