ঘড়িতে আধ কি?


25

আমার ঘরে, আমার কাছে এই গৌরবময় ঘড়ি রয়েছে (পূর্ণ আকারের জন্য ক্লিক করুন):

এখানে চিত্র বর্ণনা লিখুন

এগুলির বেশিরভাগটি নির্ধারণ করা কঠিন নয়, তবে 4-ও-ক্লকের একটি বিশেষত জটিল:

দুটি নেতিবাচক এক মডুলোর সাত

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

যাইহোক, কেবলমাত্র গুণক বিপরীতটি সন্ধান করা চ্যালেঞ্জ হিসাবে অনেক সহজ be সুতরাং আসুন কাঙ্ক্ষিতকরণের অসুবিধা বা অন্য কথায়, মডিউলার লোগারিদম বা বিযুক্ত লোগারিদম ২ সন্ধান করতে this এই ক্ষেত্রে, 3 হল the এর ক্ষেত্রে মডুলার লোগারিদম 7. এর সাথে সম্পর্কিত number. আপনারা যারা সংখ্যার তত্ত্ব / বিমূর্ত বীজগণিত পটভূমি, এর অর্থ 2 মোডুলো এন এর গুণক অর্ডার গণনা করা।

চ্যালেঞ্জ

1 টিরও বেশি ধনাত্মক বিজোড় পূর্ণসংখ্যা দেওয়া n, ক্ষুদ্রতম ধনাত্মক পূর্ণসংখ্যা xযেখানে আউটপুট দেয় এখানে চিত্র বর্ণনা লিখুন

উদাহরণ

n x
3 2 
5 4 
7 3 
9 6 
11 10 
13 12 
15 4 
17 8 
19 18 
21 6 
23 11 
25 20 
27 18 
29 28 
31 5 
33 10 
35 12 
37 36 
39 12 
41 20 
43 14 
45 12 
47 23 
49 21 
51 8 
53 52 
55 20 
57 18 
59 58 
61 60 
63 6 
65 12 
67 66 
69 22 
71 35 
73 9 
75 20 
77 30 
79 39 
81 54 
83 82 
85 8 
87 28 
89 11 
91 12 
93 10 
95 36 
97 48 
99 30 
101 100 
103 51 
105 12 
107 106 
109 36 
111 36 
113 28 
115 44 
117 12 
119 24 
121 110 
123 20 
125 100 
127 7 
129 14 
131 130 
133 18 
135 36 
137 68 
139 138 
141 46 
143 60 
145 28 
147 42 
149 148 
151 15 
153 24 
155 20 
157 52 
159 52 
161 33 
163 162 
165 20 
167 83 
169 156 
171 18 
173 172 
175 60 
177 58 
179 178 
181 180 
183 60 
185 36 
187 40 
189 18 
191 95 
193 96 
195 12 
197 196 
199 99 
201 66 

3
@ কেওবি: এটি কেবল বাইনারি।
এল'েন্ডিয়া স্টারম্যান

2
গ্রাফিকাল ইনপুট!
কনর ও'ব্রায়েন

6
x^-1মানে গুণনশীল ইনভারস্স এক্স , অর্থাত্, সংখ্যা Y যেমন যে XY = 1 । আসল সংখ্যার ক্ষেত্রে, 2 ^ -1 = 0.5 । পূর্ণসংখ্যার রিং ইন modulo 7 , 2 ^ -1 = 4
ডেনিস

4
মডুলার গাণিতিক অদ্ভুত।
সুপারজেডি ২৪

3
@ SuperJedi224 মডুলার গাণিতিক হয় অদ্ভুত, এবং এখনও আপনি সম্ভবত এটা বুঝতে ছাড়া দিনে একবার অন্তত এটা না। আপনি যদি 12 ঘন্টা সময় ব্যবহার করেন এবং কেউ আপনাকে দুই ঘন্টার মধ্যে তাদের কল করতে বলে, এবং এটি 11:00 এবং আপনি তাদের 1:00 এ কল করার সিদ্ধান্ত নিয়েছেন, আপনি সবেমাত্র মড্যুলার পাটিগণিত করেছিলেন। আমি এটি পরিষ্কার পরিচ্ছন্ন দেখতে পাই যে এই ঘড়ির মধ্যে একটি নম্বর এমনভাবে প্রকাশ করা হয়েছে যা কখনও কখনও "ক্লক অ্যারিতমেটিক" নামে পরিচিত।
টড উইলকক্স

উত্তর:



13

পাইথ - 9 8 বাইট

f!t.^2TQ

টেস্ট স্যুট

f1 এর ডিফল্ট থেকে আইল্টারগুলি এটির জন্য এমন কিছু x খুঁজে পায় যেটি 2 এবং ইনপুট সমান 1 এর সাথে মডুলার এক্সফেনসেশন।


11

পাইথন, 32 বাইট

f=lambda n,t=2:t<2or-~f(n,2*t%n)

2 দিয়ে শুরু করে, ফলাফলটি 1 না হওয়া পর্যন্ত মডুলো এনকে দ্বিগুণ করে, প্রতিবার পুনরাবৃত্তভাবে বৃদ্ধি করা এবং 2 এর প্রাথমিক মানের জন্য 1 এর গণনা সহ শেষ হয়।


8

গণিত, 24 বাইট

2~MultiplicativeOrder~#&

আমি এই জন্য একটি বিল্ট-ইন ব্যবহার করেছি।


20
এর অবশ্যই ম্যাথামেটিকাল একটি বিল্ট-ইন এই জন্য হয়েছে। : পি
এল'েন্ডিয়া স্টারম্যান

7
@ এল'এন্ডিয়াস্টারম্যান অবশ্যই ম্যাথামেটিকায় এটির জন্য একটি অন্তর্নিহিত বিল্ট-ইন রয়েছে। : - {ডি
wizzwizz4

7

এপিএল, 8 বাইট

1⍳⍨⊢|2*⍳

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

ব্যাখ্যা (ইনপুট কল x):

      2*⍳    ⍝ Compute 2^i for each i from 1 to x
   ⊢|        ⍝ Get each element of the resulting array modulo x
1⍳⍨          ⍝ Find the index of the first 1 in this array

দ্রষ্টব্য যে ফলাফলটি বড় ইনপুটগুলির জন্য ভুল হতে পারে যেহেতু ঘনিষ্ঠটি গোল হয়ে যায়।


1
এছাড়াও 8: ⍴∘∪⊢|2*⍳
lirtosiast

6

পাইথ, 14 বাইট

VQIq%^2hNQ1hNB

ব্যাখ্যা:

VQIq%^2hNQ1hNB

                # Implicit, Q = input
VQ              # For N in range(0, Q)
  Iq      1     # If equals 1
    %^2hNQ      # 2^(N + 1) % Q
           hN   # Print (N + 1)
             B  # Break

এখানে চেষ্টা করুন


আমি 66\n132\n198একটি ইনপুট পেতে 201
এল'েন্ডিয়া স্টারম্যান 23

@ এল'েন্দিয়া স্টারম্যান দুঃখিত, ভুল লিঙ্ক: পি
আদনান

ওহ, এখন ভাল আছে। :)
এল'েন্ডিয়া স্টারম্যান

5

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

f=(n,t=2)=>t<2||-~f(n,2*t%n)

@ Xnor এর উজ্জ্বল পুনরাবৃত্ত পদ্ধতির উপর ভিত্তি করে।


আপনার কি কোনও লিঙ্ক আছে যা আমি এটি পরীক্ষা করতে পারি? Chrome এ কনসোলে কাজ করছে বলে মনে হচ্ছে না। ( =>
সিনট্যাক্স এরর এর

@ এল'েন্দিয়া স্টারম্যান এখানে যাবেন।
কনর ও'ব্রায়েন

@ কেওবি: এটি কীভাবে পরীক্ষা করতে হয় তা আমি বুঝতে পারি না।
এল'েন্ডিয়া স্টারম্যান

@ এল'এন্ডিয়াস্টারম্যান এই কোডটি এমন একটি ফাংশন সংজ্ঞায়িত করেছে যা বলা যেতে পারে f(3)। কিছু নির্বোধ কারণে, ওয়েবসাইটটি আপনাকে এই ফাংশনটি ব্যবহার করতে দেয় না আপনি যদি না এটি দিয়ে ঘোষণা করেন letবা না করে varএটা চেষ্টা কর.
ETH প্রোডাকশনগুলি

1
@ পাভলো আমি জানি ল্যাম্বডাস গ্রহণ করা হয়েছে তবে এই ফাংশনটির নামকরণ করা দরকার যাতে এটি নিজেই কল করতে পারে। আমি আমার কম্পিউটারে ফিরে এলে আমি একটি পরীক্ষার স্যুট লিঙ্ক যুক্ত করব।
ETH প্রোডাকশনগুলি

5

05 এ বি 1 , 11 বাইট

কোড:

DUG2NmX%iNq

ব্যাখ্যা:

DUG2NmX%iNq

D            # Duplicates the stack, or input when empty
 U           # Assign X to last item of the stack
  G          # For N in range(1, input)
   2Nm       # Calculates 2 ** N
      X      # Pushes X
       %     # Calculates the modulo of the last two items in the stack
        i    # If equals 1 or true, do { Nq }
         N   # Pushes N on top of the stack
          q  # Terminates the program
             # Implicit, nothing has printed, so we print the last item in the stack

5

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

n->endof(1∪2.^(1:n)%n)

এটি সহজ - 2.^(1:n)%nসেটটির মধ্যে 2 এর পাওয়ার সন্ধান করে, এটি হ'ল unionতবে uniqueপ্রতিটি অনন্য শক্তি হিসাবে কেবল একটির হিসাবে কাজ করে এবং এটি একটি ইনফিক্স অপারেটর হওয়ায় আমি 1 এর সাথে ইউনিয়ন করতে পারি ∪(2.^(1:n)%n)পদ্ধতির উপর একটি বাইট সংরক্ষণ করতে )। তারপরে endofঅনন্য শক্তিগুলির সংখ্যা গণনা করা হয়, কারণ এটি একবার হিট হয়ে গেলে এটি কেবল বিদ্যমান শক্তির পুনরাবৃত্তি করবে, সুতরাং 1 পাওয়ার উত্স হিসাবে অনেকগুলি অনন্য মূল্যবোধ থাকবে।


5

গম্ভীরভাবে, 14 বাইট

1,;╗R`╙╜@%`Míu

হেক্স ডাম্প:

312c3bbb5260d3bd4025604da175

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

ব্যাখ্যা:

 ,;╗           Make 2 copies of input, put 1 in reg0
    R          push [0,1,...,n-1]
     `    `M   map the quoted function over the range
      ╙        do 2^n
       ╜@%     modulo the value in reg0
1           íu Find the 1-index of 1 in the list.

4

হাস্কেল, 30 বাইট

n%1=1
n%t=1+n%(2*t`mod`n)
(%2)

সহায়তার যুক্তিটি 1 tটির nসমান না হওয়া পর্যন্ত প্রতিটি পদক্ষেপে দ্বিগুণ হয়ে যায় ।


আমি এটি কিভাবে পরীক্ষা করতে পারি?
এল'েন্ডিয়া স্টারম্যান


@ মরিস: ধন্যবাদ!
এল'েন্ডিয়া স্টারম্যান

2

জাপট, 17 বাইট

1oU f@2pX %U¥1} g

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

এটি তিন বাইট সংক্ষিপ্ত হবে যদি জপ্টের "এই শর্তের সাথে মেলে এমন প্রথম আইটেমটি সন্ধান করুন" ফাংশন হয়। একটিতে কাজ শুরু করে

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

1oU f@2pX %U¥1} g   // Implicit: U = input number
1oU                 // Generate a range of numbers from 1 to U.
                    // "Uo" is one byte shorter, but the result would always be 0.
    f@        }     // Filter: keep only the items X that satisfy this condition:
      2pX %U¥1      //  2 to the power of X, mod U, is equal to 1.
                g   // Get the first item in the resulting list.
                    // Implicit: output last expression


2

জুলিয়া, 33 26 বাইট

n->findfirst(2.^(1:n)%n,1)

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

আমরা 1 থেকে প্রতিটি পূর্ণসংখ্যার পাওয়ারের জন্য উত্থাপিত 2 হিসাবে একটি অ্যারে তৈরি nকরি, তারপরে আমরা এই অ্যারে প্রথম 1 এর সূচকটি পাই।

গ্লেন ওকে 7 বাইট সংরক্ষণ করা!


মানচিত্রের আদেশের প্রয়োজন নেই, কেবল ব্যবহার করুন 2.^(1:n)%n
গ্লেন ও

@ GlenO যে পুরোপুরি কাজ করে, ধন্যবাদ!
অ্যালেক্স এ।


2

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

it:Hw^w\1=f1)

সংকলকের বর্তমান গিটহাব কমিটের সাথে অষ্টাভে চালিত ।

ইনপুট পর্যন্ত কাজ করে 51( doubleডেটা ধরণের সীমাবদ্ধতার কারণে )।

উদাহরণ

>> matl it:Hw^w\1=f1)
> 17
8

ব্যাখ্যা

i             % input, "N"
t:            % vector from 1 to N
Hw^           % 2 raised to that vector, element-wise
w\            % modulo N
1=            % true if it equals 1, element-wise
f1)           % index of first "true" value

2

ইউনিকর্ন , 1307 1062 976 বাইট

( ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 ( 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 2 ) 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈 ✨✨✨✨✨✨✨✨✨✨ 2 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈 🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤 ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ ( 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈 2 ✨✨✨✨✨✨✨ 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐🐐 ) ) ( 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈 ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ 🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤🌤 🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄🦄 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈 ( ) )

আমি ইউনিকর্নকে মারাত্মক গল্ফ করার ভাষা করার চেষ্টা করছি তবে এটি কিছুটা কঠিন ...

আশা করি আমি খুব কম বাইটস তৈরি করার সময় ভাষার "ইউনিকর্ন-নেস" ধরে রাখার একটি উপায় খুঁজে পাব


ছবি:

এখানে চিত্র বর্ণনা লিখুন

একটি কাস্টম এনকোডিং ব্যবহার করে।

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


3
রংধনু এবং ইউনিকর্নগুলি এটির সাথে শক্তিশালী ...
মামা ফান রোল

কেউ ইউনিকর্নআরএলই
সেবি

((2)2(2))(())@ ডাউঙ্গোটের দোভাষী দিয়ে আমি কি একমাত্র কোড থেকে বেরিয়ে আসছি?
আর

2

𝔼𝕊𝕄𝕚𝕟, 11 টি চর / 22 বাইট

↻2ⁿḁ%ï>1)⧺ḁ

Try it here (Firefox only).

কিছুক্ষণ লুপ ব্যবহার করে। লুপটি একটি ব্যাপ্তির চেয়ে বেশি সময় নির্ধারণের চেয়ে বেশ কয়েকবার এর মধ্যে একটি।

ব্যাখ্যা

          // implicit: ï = input, ḁ = 1
↻2ⁿḁ%ï>1) // while 2 to the power of ḁ mod input is greater than 1
  ⧺ḁ      // increment ḁ
          // implicit output


0

প্রোলোগ, 55 বাইট

কোড:

N*X:-powm(2,X,N)=:=1,write(X);Z is X+1,N*Z.
p(N):-N*1.

ব্যাখ্যা:

N*X:-powm(2,X,N)=:=1, % IF 2^X mod N == 1
     write(X)         % Print X
     ;Z is X+1,       % ELSE increase exponent X
     N*Z.             % Recurse
p(N):-N*1.            % Start testing with 2^1

উদাহরণ:

p(195).
12

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

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