সম্মিলিত সম্পর্ক


11

3 ধনাত্মক পূর্ণসংখ্যা দেওয়া a, bএবং n(যার সর্বোচ্চ মান আপনার ভাষায় সর্বাধিক representable পূর্ণসংখ্যা মান হয়), আউটপুট একটি truthy মান যদি a ≡ b (mod n), এবং falsey অন্যথায়। সম্মিলিত সম্পর্কের সাথে অপরিচিত যারা, তাদের a ≡ b (mod n)জন্য সত্য iff a mod n = b mod n(বা, সমতুল্য, (a - b) mod n = 0)।

বিধিনিষেধ

  • অন্তর্নির্মিত সম্মিলন পরীক্ষার পদ্ধতি নিষিদ্ধ
  • অন্তর্নির্মিত মডুলো অপারেশনগুলিতে নিষিদ্ধ রয়েছে (এর মধ্যে পাইথনের divmodফাংশনগুলির মতো ক্রিয়াকলাপ অন্তর্ভুক্ত রয়েছে , যা ভাগফল এবং বাকী উভয়ই সরবরাহ করে, পাশাপাশি বিভাজনীয় ফাংশন, অবশিষ্টাংশ সিস্টেম ফাংশন এবং এর মতো করে)

পরীক্ষার কেস

(1, 2, 3) -> False
(2, 4, 2) -> True
(3, 9, 10) -> False
(25, 45, 20) -> True
(4, 5, 1) -> True
(83, 73, 59) -> False
(70, 79, 29) -> False
(16, 44, 86) -> False
(28, 78, 5) -> True
(73, 31, 14) -> True
(9, 9, 88) -> True
(20, 7, 82) -> False

এটি , তাই সংক্ষিপ্ততম কোড (বাইটে) জয়, টাইব্রেকার হিসাবে প্রাথমিকতম জমা দিয়ে।


বিভাজ্য কার্যকারিতা সম্পর্কে কীভাবে?
কনর ও'ব্রায়েন

@ CᴏɴᴏʀO'Bʀɪᴇɴ যারা বাকী রয়েছেন তাদের পরীক্ষা করে কাজ করে, তাই এগুলিও নিষিদ্ধ। আমি স্পষ্ট করব।
মেগো

পাইথন 2 এর পূর্ণসংখ্যা তল বিভাগ সম্পর্কে কীভাবে /?
xnor

ভাসমান পয়েন্ট বিভাগ?
এল'েন্ডিয়া স্টারম্যান

1
বেস রূপান্তর?
ডেনিস

উত্তর:


5

জেলি, 5 বাইট

_ÆD⁵e

নিষিদ্ধ নয় এমন যে কোনও কিছুর অতিরিক্ত ব্যবহার করা অনুমোদিত is

এটি অনলাইন চেষ্টা করুন!

কিভাবে এটা কাজ করে

_ÆD⁵e  Main link. Left input: a. Right input: b. Additional input: n

_      Subtract b from a.
 ÆD    Compute all divisors of the difference.
   ⁵e  Test if n is among the divisors.

4

পাইথন 2, 27 বাইট

lambda a,b,n:(a-b)/n*n==a-b

দ্বারা ভাগ করে a-bকোনও একাধিক হয় কিনা তা যাচাই nকরে nযা স্বয়ংক্রিয়ভাবে মেঝেতে nভেসে ওঠে এবং যদি আবার গুণিত হয় তবে একই ফলাফল দেয়।


4

জুলিয়া, 24 বাইট

f(a,b,n,t=a-b)=t÷n==t/n

এটি এমন একটি ফাংশন যা তিনটি পূর্ণসংখ্যা গ্রহণ করে এবং একটি বুলিয়ান দেয়।

আমরা সহজেই পরীক্ষা করে দেখি যে a - b পূর্ণসংখ্যা n দ্বারা বিভাজক a - b ভাসমান n দ্বারা বিভক্ত হবে কিনা । বিভাগ থেকে কোনও অবশিষ্ট নেই, অর্থাত্ - | সত্য হবে n , যা বোঝায় যে a - b (mod n ) = 0।


4

পাইথ, 7 বাইট

!@UQ-FE

পাইথের সাইক্লিক ইনডেক্সিং ব্যবহার করে।

  UQ         range(first line). [0,...,Q-1]
    -FE      Fold subtraction over the second line.
 @           Cyclic index UQ at -FE
!            Logical NOT


3

মিনকোলং 0.15 , 14 11 বাইট

nn-n$d:*=N.

এখানে চেষ্টা করুন! ইনপুট হিসাবে আশা করা হচ্ছে a b n

ব্যাখ্যা:

n              Take number from input -> a
 n             Take number from input -> a, b
  -            Subtract               -> a-b
   n           Take number from input -> a-b, n
    $d         Duplicate stack        -> a-b, n, a-b, n
      :        Integer division       -> a-b, n, (a-b)//n
       *       Multiply               -> a-b, (a-b)//n*n
        =      1 if equal, 0 otherwise
         N.    Output as number and stop.

3

এমএটিএল , 9 বাইট

Sdt:i*0hm

ইনপুট ফর্ম্যাট হয়

[a b]
n

এটি অনলাইন চেষ্টা করুন!

S     % implicitly input [a, b]. Sort this array
d     % compute difference. Gives abs(a-b)
t:    % duplicate and generate vector [1,2,...,abs(a-b)]; or [] if a==b
i*    % input n and multiply to obtain [n,2*n,...,abs(a-b)*n]; or []
0h    % concatenate element 0
m     % ismember function. Implicitly display

3

রেটিনা , 20

^(1+) \1*(1*) \1*\2$

ইনপুট ক্রমহীন, স্থান-বিচ্ছিন্নভাবে দেওয়া হয় n a b। সত্যের জন্য আউটপুট 1 এবং মিথ্যা জন্য 0।

এটি অনলাইনে চেষ্টা করুন।


আপনি যদি দশমিক ইনপুট পছন্দ করেন তবে আপনি এটি করতে পারেন:

\d+
$&$*1
^(1+) \1*(1*) \1*\2$

এটি অনলাইনে চেষ্টা করুন।


2

এপিএল, 15 বাইট

{(⌊d)=d←⍺÷⍨-/⍵}

এই dyadic ফাংশন যা কবুল করেন এন বাম এবং উপর একটি এবং ডান দিকে একটি অ্যারের হিসাবে।

এখানে পদ্ধতির মূলত আমার জুলিয়া উত্তর মত একই । আমরা পরীক্ষা করি যে a - b / n নিজের মেঝে সমান কিনা , যা সত্য হবে যখন a - b (mod n ) = 0 হবে।


একটি চারটি সংরক্ষণ করুন:d=⌊d←⎕÷⍨-/⎕
Adám

2

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

@ CᴏɴᴏʀO'Bʀɪᴇɴ একটি সংস্করণ পোস্ট করেছে যা কাজ করে না; এখানে "সাধারণ অ্যালগরিদম" যা লোকেরা এমন ফর্মে ব্যবহার করছে যা "কাজ করে":

(a,b,n)=>n*(0|(a-b)/n)==a-b

"ওয়ার্কস" শব্দটি ভীতিজনক উদ্ধৃতিতে রয়েছে কারণ আমরা যে শর্টকাটটি ব্যবহার করছি তার জন্য Math.floor()স্বাক্ষরিত 32-বিট পরিসরে থাকা সংখ্যাকে ছাপিয়ে যায়, সুতরাং এটি জাভাস্ক্রিপ্টের দ্বারা পূর্ণ 52-বিট-বা-যে কোনও পূর্ণসংখ্যার স্থানটি পরিচালনা করতে পারে না cannot বর্ণনা করে।


যদি এই উত্তরটি ভাষায় সমস্ত প্রতিনিধিত্বমূলক ধনাত্মক পূর্ণসংখ্যাকে পরিচালনা করতে না পারে তবে এটি বৈধ নয়।
মেগো

1
@ মেগো: প্রদত্ত যে কয়েকটি ভাষায় 32-বিট পূর্ণসংখ্যার ব্যবহার করা হবে, আমি মনে করি যে আপনি যদি পূর্ণসংখ্যার বিট-প্রস্থ উল্লেখ না করেন বা ভাষাটি অবশ্যই দ্বিখণ্ডিত না হয়ে থাকে তবে সীমাবদ্ধতা স্বেচ্ছাসেবী।
সিআর ড্রস্ট

1
এটি মোটেও স্বেচ্ছাচারিতা নয়। চ্যালেঞ্জটি পরিষ্কারভাবে জানিয়েছে যে ইনপুটগুলি কোনও 3 ইতিবাচক পূর্ণসংখ্যার হতে পারে, নির্বাচিত ভাষায় সর্বাধিক উপস্থাপনযোগ্য পূর্ণসংখ্যার মান অবধি। যদি সেই ব্যাপ্তিটিতে সেট ইনপুটগুলির জন্য জমাটি ব্যর্থ হতে পারে তবে এটি বৈধ নয়। প্রাসঙ্গিক মেটা পোস্ট
মেগো

@ মেগো: আমাকে আপনাকে বিন্দু ফাঁকা জিজ্ঞাসা করুন: আপনি কি একই মানদণ্ডে হাস্কেল সমাধানের বিষয়ে আপত্তি জানাতে চলেছেন? (হাস্কেল সলিউশনটি বহুকর্মী কারণ এটির একটি স্বাক্ষর নেই এবং এমনভাবে লিখিত হয়নি যা ড্রেডেড মনোমরফিজম সীমাবদ্ধতার আহ্বান জানায় normal সাধারণ স্বাক্ষরিত ধরণের জন্য এটি পুরো পরিসীমা জুড়ে পুরোপুরি ভালভাবে কাজ করে; তবে ইনপুটগুলির একটি সেট রয়েছে যা আপনি করতে পারেন রাখুন - একটি পরীক্ষার সেটটি (2, 150, 3) :: (Word8, Word8, Word8); আপনার নির্দিষ্ট করা মানদণ্ডটি স্পষ্টভাবে "যদি তাত্ত্বিকভাবে কোনও ইনপুট উপস্থিত থাকে যা উত্তরটিকে অবৈধ করে তোলে, উত্তরটি অবৈধ বলে মনে করা উচিত" ")
সিআর ড্রস্ট

1
@ মেগো: আপনি যদি ভাবছেন যে কেন আমি এ থেকে বড় চুক্তি করছি, জাভাস্ক্রিপ্ট নম্বর টাইপের মধ্যে 2 ^ 52-isশ প্রান্তের চারপাশে অবিচ্ছিন্ন পূর্ণসংখ্যার সমন্বয় রয়েছে, যাতে এটি খুব (a - b) == aনির্দিষ্ট হয়ে যায় যে নির্দিষ্ট মানগুলির জন্য a। এই উত্তর সীমান্তভূমিতে বৈধ হতে হবে এমন একটি উত্তর প্রায় অসম্ভব তবে আমি বাইট জরিমানাও নিই এবং এর সাথে প্রতিস্থাপনও (0|...)করেছিMath.floor(...).
সিআর ড্রস্ট

2

সিজেম, 7 বাইট

l~-\,=!

ইনপুট অর্ডার হয় n a b

এটি এখানে পরীক্ষা করুন।

ব্যাখ্যা

l~  e# Read input and evaluate to push n, a and b onto the stack.
-   e# Subtract b from a.
\,  e# Swap with n and turn into range [0 1 ... n-1].
=   e# Get (a-b)th element from that range, which uses cyclic indexing. This is
    e# equivalent to modulo, and as opposed to the built-in % it also works correctly
    e# for negative (a-b).
!   e# Negate, because a 0 result from the previous computation means they are congruent.

1

পাইথন 3, 27 বাইট

lambda a,b,n:pow(a-b,1,n)<1

pow(x,y,n)গণনা করে (x**y)%n, তাই এটি ঠিক (a-b)**1%n


1

ES6, 28 বাইট

(a,b,n)=>!/\./.test((a-b)/n)

(আব) / এন এর দশমিক বিন্দু অনুসন্ধান করে কাজ করে যা আমি প্রত্যাশা করি।


1

সিরিয়াসলি, 10 বাইট

,,,-A│\)/=

হিসাবে ইনপুট নেয় N\nA\nB\n(নতুনরেখাগুলি থেকে পৃথক করার জন্য মূলধন পত্রগুলি ব্যবহৃত হয়)।

এটি অনলাইনে চেষ্টা করুন

এটি @ অ্যালেক্সার উত্তর হিসাবে একই পদ্ধতি ব্যবহার করে

ব্যাখ্যা (ব্যাখ্যামূলক উদ্দেশ্যে ভেরিয়েবলের নাম হিসাবে ব্যবহৃত মূলধনপত্র):

,,,-A│\)/=
,,,         push N, A, B
   -A       push C = abs(A-B)
     │      duplicate entire stack (result is [N, C, N, C])
      \)/=  1 if C//N == C/N (floored division equals float division)

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