প্রতিটি দৈর্ঘ্যের চক্র সহ একটি ফাংশন সন্ধান করুন


11

একটি ফাংশন একটি আছে বলা হয় দৈর্ঘ্য চক্র এন একটা যদি উপস্থিত থাকে এক্স তার ডোমেইনে যেমন যে এন (x) এর = এক্স এবং মি (x) এর ≠ এক্স জন্য 0 <M <এন , যেখানে সুপারস্ক্রিপ্ট এন -এর মানে এন - প্রয়োগের ভাঁজ । লক্ষ্য করুন দৈর্ঘ্য একটি চক্র 1 একটি নির্দিষ্ট বিন্দু চ (x) = x এর

আপনার কাজটি পূর্ণসংখ্যার থেকে তাদের কাছে দ্বিপদী ফাংশনটি প্রয়োগ করা , যার প্রতিটি ধনাত্মক দৈর্ঘ্যের এন ঠিক একটি চক্র থাকে । একটি বাইজিক ফাংশন হ'ল এক-এক-এক সংবাদপত্র, অর্থাৎ প্রতিটি পূর্ণসংখ্যার ঠিক একবারে ম্যাপ করা হয়। দৈর্ঘ্য ঠিক একটি চক্র হচ্ছে এন মানে ঠিক আছে এন স্বতন্ত্র সংখ্যা x , যার জন্য এন (x) এর = এক্স এবং মি (x) এর ≠ এক্স জন্য 0 <M <এন

এই জাতীয় ফাংশনটি প্রায় x = 0 এর মতো দেখতে কী হতে পারে তার একটি উদাহরণ এখানে রয়েছে :

x     ... -7 -6 -5 -4 -3 -2 -1  0  1  2  3  4  5  6  7 ...
f(x)  ...  2  4  6 -3 -1  1 -4  0 -2  5  7 -7 -6  3 -5 ...

এই অংশে 1 থেকে 5 দৈর্ঘ্যের চক্র রয়েছে :

n   cycle
1    0
2   -2  1
3   -4 -3 -1
4   -5  6  3  7
5   -7  2  5 -6  4
...

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

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

স্ট্যান্ডার্ড বিধি প্রযোজ্য।


2
ঘনিষ্ঠভাবে সম্পর্কিত. যদিও পার্থক্যগুলি সামান্য বলে মনে হচ্ছে তবুও তারা বোঝায় যে পুরানো কোনও পদ্ধতিরই উল্লেখযোগ্য পরিবর্তন ছাড়াই কাজ হয় না এবং বিশেষত আমি মনে করি না যে এই চ্যালেঞ্জ থেকে বিজয়ী পন্থাটি একেবারেই মানিয়ে নেওয়া যায়।
মার্টিন ইন্ডার

"প্রতিটি দৈর্ঘ্যের হুবহু একটি চক্র রয়েছে", "অনেকগুলি চক্রের দৈর্ঘ্যের চক্র রয়েছে": এটি কি কেবলমাত্র এই পার্থক্য যা অন্য থেকে পৃথক করে?
Abr001am

@ আগওয়া 1001 এটি একটি পার্থক্য, অন্যটি হ'ল অন্য চ্যালেঞ্জটি ইতিবাচক পূর্ণসংখ্যার কার্যকারিতা সম্পর্কে, যেখানে এই চ্যালেঞ্জটি সমস্ত পূর্ণসংখ্যার উপর একটি ফাংশন চেয়েছে asks
মার্টিন এন্ডার

1
আমি মনে করি আপনার চক্রের সংজ্ঞাটি ন্যূনতম হ'ল অন্তর্ভুক্ত করা দরকার। অন্যথায়, আপনার দৈর্ঘ্য 2 চক্রটি আপনার দৈর্ঘ্য 4 এবং 6 এবং এর মতো চক্র হিসাবে গণনা করে।
xnor

@ এক্সনর ওফস, ভাল পয়েন্ট।
মার্টিন এন্ডার

উত্তর:


2

পাইথ, 27 18 বাইট

_h?gQ0^2Q*.5@,Q-xh

ব্যাখ্যা (পাইথ Qইনপুট পূর্ণসংখ্যার সাথে সূচনা করে):

_                       negative of (
                          (
  ?gQ0                      if Q >= 0:
      ^2Q                     2**Q
                            else:
         *.5                  half of
            @        Q          element Q (modulo list length) in
             ,                    the two element list [
              Q                     Q,
                 hQ                 ((Q plus 1)
                x  Q                 XOR Q)
               -    Q               minus Q
                                  ]
 h                        ) plus 1
                        )

এটি চক্র আছে

(−1)
(0, −2)
(1, −3, −4)
(2, −5, −7, −6)
(3, −9, −13, −11, −8)
(4, - 17, −25, −21, −15, −10)
(5, −33, −49, −41, −29, −19, −12)
(6, −65, −97, −81, −57, −37, −23, −14)
(7, −129, −193, −161, −113, −73, −45, −27, −16)
(8, −257, −385, 21321, −225 , −145, −89, −53, −31, −18)
(9, −513, −769, −641, −449, −289, −177, −105, −61, −35, −20)

দৈর্ঘ্য n এর চক্র দ্বারা প্রদত্ত

( এন - 2,
−2 ^ ( এন - 2) ⋅1 - 1,
−2 ^ ( এন - 3) ⋅3 - 1,
−2 ^ ( এন - 4) ⋅5 - 1,
…,
−2 ^ 2 ⋅ (2 · n - 7) - 1,
−2 ^ 1⋅ (2 · n - 5) - 1,
−2 ^ 0⋅ (2 · n - 3) - 1)।

প্রতিটি পূর্ণসংখ্যা k ≥ −1 ( কে + 2) -সাইকেলের প্রথম উপাদান হিসাবে উপস্থিত হয় । প্রতিটি পূর্ণসংখ্যার কে <−1 এর জন্য, আমরা কিছু i , j ≥ 0 এর জন্য স্বতন্ত্রভাবে 1 - কে = 2 + i some (2⋅ জে + 1) লিখতে পারি ; তারপরে কে ( i + j + 2) সাইকেলের ( j + 2) তম উপাদান হিসাবে উপস্থিত হয় ।


5

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

E|G0<-QXJ:tQ*2/0hStJ<f0))Q2MQ)&:J6M-)2/ttk>Eq*k

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

সাধারণ ব্যাখ্যা

নীচের ফাংশন 2 সম্পর্কিত চ্যালেঞ্জের @ Sp3000 এর উত্তর হিসাবে ব্যবহৃত হয়েছে । লক্ষ্য করার জন্য @ আগাওয়া 1001 কে ধন্যবাদ।

ফাংশনটি তিনটির সমন্বয়:

  1. জেড (পূর্ণসংখ্যা) থেকে এন (প্রাকৃতিক) পর্যন্ত বাইজেকশন ।
  2. থেকে Bijection এন করতে এন আকাঙ্ক্ষিত চরিত্রগত (প্রতিটি দৈর্ঘ্য এক চক্র) সঙ্গে।
  3. বিপরীতে ফাংশন 1।

1 এবং 3 ফাংশন ব্যবহৃত হয় কারণ জেডের চেয়ে এন এর মধ্যে পছন্দসই আচরণ অর্জন করা সহজ (আমার মনে হয়) ।

ফাংশন 2 নিম্নরূপ: উপরের লাইনটি ডোমেন, নিম্ন লাইনটি কোডোমাইন। কমাগুলি স্পষ্টতার জন্য ব্যবহৃত হয়:

1,  2  3,  4  5  6,  7  8  9  10  ...
1,  3  2,  6  4  5, 10  7  8   9  ...

প্রথম ব্লকটি (উপর থেকে 1নীচে 1) দৈর্ঘ্যের একটি চক্র হয়। দ্বিতীয় (থেকে 2 3থেকে 3 2) দৈর্ঘ্য 2 ইত্যাদির একটি চক্র ইত্যাদি block ডানদিকে এক ধাপ।

ফাংশন 1 নিম্নরূপ:

 -5  -4  -3  -2  -1   0  +1  +2  +3  +4  ...
+10  +8  +6  +4  +2  +1  +3  +5  +7  +9  ...

দুটি লাইন অদলবদল করে ফাংশন 3 1 এর সমান।

উদাহরণ

ভাবমূর্তি 3হয় -5। প্রথম 1 দ্বারা ফাংশন 3ম্যাপ করা 7হয়; তারপর ফাংশন 2 দ্বারা 7ম্যাপ করা 10হয়; তারপর 10ফাংশন 3 দ্বারা -5-এ ম্যাপ করা হয়।

দৈর্ঘ্য -১ চক্র 0। দৈর্ঘ্য -২ চক্রটি -1 1। দৈর্ঘ্য -৩ চক্র -3 2 -2ইত্যাদি etc.

কোড ব্যাখ্যা করা হয়েছে

1 এবং 3 ফাংশনগুলি সোজা are

ফাংশন 2 সংশ্লিষ্ট ইনপুট ব্লকের নিম্ন প্রান্তটি খুঁজে বের করে কাজ করে। উদাহরণস্বরূপ, যদি এই ফাংশনটির ইনপুটটি 9এটি পাওয়া যায় 7(উপরের ব্লকগুলি দেখুন)। এরপরে এটি উপরের প্রান্তটি বেছে নেয় যা 10উদাহরণে রয়েছে। এমএটিএল এর 1-ভিত্তিক, মডুলার ইনডেক্সিংয়ের জন্য ব্লকের বৃত্তাকার শিফ্টটি অর্জন করা হয়েছে।

         % FUNCTION 1
         % Implicit input
E|       % Multiply by two. Absolute value
G0<      % 1 if input is negative, 0 otherwise
-        % Subtract
Q        % Add 1
XJ       % Copy to clipboard J. Used as input to the next function

         % FUNCTION 2
:        % Range [1 2 ... J], where J denotes the input to this function
tQ*      % Duplicate, increment by 1, multiply
2/       % Divide by 2
0hS      % Prepend a 0. This is needed in case J is 0
tJ<f     % Duplicate. Find indices that are less than the input J
0)       % Pick the last index.
)        % Apply as index to obtain input value that ends previous block
Q        % Add 1: start of current block
2M       % Push the two arguments to second-to-last function call
Q)       % Add 1 and use as index: end of current block
&:       % Inclusive binary range: generate input block 
J        % Push J (input to function 2)
6M-      % Subtract start of block
)        % Apply as index (1-based, modular). This realizes the shifting

         % FUNCTION 3
2/       % Divide by 2
ttk>     % Duplicate. 1 if decimal part is not 0; 0 otherwise
Eq       % Multiply by 2, add 1
*        % Multiply
k        % Round down
         % Implicit display

এই sp3000 এর ফাংশন একটি বাঁক ঠিক আছে?
Abr001am

@ আগওয়া 1001 ওহ এটা কি? অন্য চ্যালেঞ্জ আমি দেখিনি। আমি একবার দেখে নেব
লুইস মেন্ডো

উহু. এটা অবশ্যই। কমপক্ষে এটি স্পষ্ট করে যে আমার যুক্তি, মূল না থাকলে সঠিক ছিল :-)
লুইস মেন্ডো

অবাক করা বিষয় কীভাবে একের বেশি মন ঘনিষ্ঠ ধারণাগুলি বহন করতে ঘনিষ্ঠভাবে ফ্রেমযুক্ত হয়।
Abr001am

4

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

g=lambda n,k=1:n/k and~g(~n+k*(n>0),k+1)+k*(n>0)or-~n%k

59 বাইট:

g=lambda n,k=1:n<0and~g(~n,2)or n/k and k+g(n-k,k+2)or-~n%k

চক্র তৈরি করে

[0]
[-1, -2]
[1, 2, 3]
[-3, -4, -5, -6]
[4, 5, 6, 7, 8]
...

পূর্ববর্তী চ্যালেঞ্জের উপর আমার সমাধান থেকে পরিবর্তিত , যা এসপি 3000 এর নির্মাণ থেকে সংশোধিত ।

কাজ

g=lambda n,k=1:n/k and k+g(n-k,k+2)or-~n%k

অ-নেতিবাচক সংখ্যার বিজোড় আকারের চক্র তৈরি করে

[0]
[1, 2, 3]
[4, 5, 6, 7, 8]
...

সঠিক চক্রের আকার সন্ধান করতে k, ফলাফলটি বিরতিতে না আসা পর্যন্ত ইনপুটটি nনীচে নামিয়ে দিন । অপারেশনের সাথে এই ব্যবধানটি সাইকেল চালান , তারপরে ইনপুট-এ সমস্ত বিয়োগফলগুলি পূর্বাবস্থায় ফিরিয়ে আনুন। এটি পুনরাবৃত্তিমূলকভাবে প্রয়োগ করা হয় ।k=1,3,5,7,...[0,k)n->(n+1)%kk+g(n-k,k+2)

এখন, আমাদের এমনকি চক্র তৈরি করতে নেতিবাচক প্রয়োজন। নোট আমরা সংশোধন যদি gদিয়ে শুরু করতে k=2মধ্যে g, এমনকি আমরা আকার চক্র পেতে চাই

[0, 1]
[2, 3, 4, 5]
[6, 7, 8, 9, 10, 11]
...

বিট-সম্পূরক মাধ্যমে নেগেটিভ এইসব biject ~। সুতরাং, যখন nনেতিবাচক হয়, আমরা কেবল g(n)হিসাবে হিসাবে মূল্যায়ন ~g(~n,2)


এটি সাহায্য করে কিনা আমি জানি না, তবে গণনার আরেকটি উপায় kবলে মনে হচ্ছে Math.floor(Math.sqrt(n))*2+1
নীল

@ নীল আমি গণিতগতভাবে সীমানা এবং চক্রের আকারগুলি নির্ধারণ করতে এবং পুরো গণনাটি সেভাবে করার দিকে লক্ষ্য করেছি, তবে পাইথনে এই অভিব্যক্তিগুলি দীর্ঘতর এবং আমি পুনরাবৃত্তিটি আরও সংক্ষিপ্ত বলে মনে করেছি।
xnor

3

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

সেখানে কীভাবে ল্যাম্বদা পাবেন তা আমি এখনও বুঝতে পারি নি

যদি n একটি ত্রিভুজ সংখ্যা [1,3,6,10,15,21,28, ইত্যাদি ...] হয় তবে চ (এন) তালিকার ক্রম হল negativeণাত্মক দ্বারা গুণিত। যদি সংখ্যাটি negativeণাত্মক হয় তবে পরের ক্ষুদ্রতম ত্রিভুজ সংখ্যাটি এটি 1 + দিন। অন্যথায়, বৃদ্ধি।

উদাহরণ: 5 টি একটি ত্রিভুজ সংখ্যা নয়, সুতরাং 1 যুক্ত করুন।

পরবর্তী পুনরাবৃত্তি, আমাদের 6 আছে 6 একটি ত্রিভুজ সংখ্যা, এবং এটি তালিকার তৃতীয়, সুতরাং বেরিয়ে আসে -3।

প্রোগ্রাম এই তালিকা দেয়

দৈর্ঘ্য 1: [0]

দৈর্ঘ্য 2: [1, -1]

দৈর্ঘ্য 3: [2,3, -2]

দৈর্ঘ্য 4: [4,5,6, -3]

দৈর্ঘ্য 5: [7,8,9,10, -4]

x=int(input())
if x<0:print((x**2+x)/2+1)
else:
 a=((8*x+1)**.5-1)/2
 if a%1:print(x+1)
 else:print(-a)

সম্পাদনা করুন: অতিরিক্ত চার্টার অপসারণ করার জন্য @ টুক্কাএক্সকে আবার ধন্যবাদ।


1
আপনি পরিবর্তন হতে পারে 0.5জন্য .5এবং input('')করতে input()
ইয়াতসি

2

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

0 এর চেয়ে বড় প্রতিটি সংখ্যার জন্য এখানে লুপগুলি (লেন 2,4,6,8 ...), এবং 0 এরও কম, বিজোড় লুপ (1,3,5,7) থাকে। 0 থেকে 0 মানচিত্র।

(-3, -2, -1), (0), (1,2), (3,4,5,6)

মানচিত্র

(-2, -1, -3), (0), (2,1), (6,3,4,5)

f=lambda x:1+2*int(abs(x)**.5)if x<1 else 2*int(x**.5+.5)
x=int(input());n=f(x)
if x>0:b=n*(n-2)/4
else:b=-((n+1)/2)**2
print(b+1+(x-b-2)%n)

সম্পাদনা করুন: @ টুক্কাএক্স আগের সমাধান থেকে 8 টি বাইট নিয়েছিল। এবং অন্য 3।


1
আমি মনে করি আপনি প্রথম লাইনে if স্টেটমেন্টের আগে একটি সাদা স্থান সরিয়ে ফেলতে পারেন। এবং miছোট কিছুতে পরিবর্তিত হতে পারে, যেমন b
Yytsi

এখানে একই প্রোগ্রামটি গল্ফ হয়েছে:f=lambda x:1+2*int(abs(x)**0.5)if x<1 else 2*int(x**0.5+0.5) x=int(input()) n=f(x) if x>0:b=n*(n-2)/4 else:b=-((n+1)/2)**2 print(b+1+(x-b-2)%n)
ইয়াতসী

1
ধন্যবাদ, @ টুকুএক্সএক্স। আমি 2 চরিত্রের ভেরিয়েবল 'মাই' সম্পর্কে ভুলে গেছি।
ম্যাজেন্টা

1
আমিও পরিবর্তিত input('')করতে input()। উদ্ধৃতিগুলি অকেজো কারণ যেহেতু আমরা কেবল ইনপুট পেতে চাইলে আমাদের কনসোলে কিছু প্রিন্ট করতে হবে না।
ইয়াতসি

1
এমনকি খাটোও। বিন্দুর আগে শূন্যগুলি সরানো হয়েছে। f=lambda x:1+2*int(abs(x)**.5)if x<1 else 2*int(x**.5+.5) x=int(input());n=f(x) if x>0:b=n*(n-2)/4 else:b=-((n+1)/2)**2 print(b+1+(x-b-2)%n)
ইয়াতসি

2

মতলব (423)

function u=f(n),if(~n)u=n;else,x=abs(n);y=factor(x);for o=1:nnz(y),e=prod(nchoosek(y,o)',1);a=log(x)./log(e);b=find(a-fix(a)<exp(-9),1);if ~isempty(b),k=e(b);l=fix(a(b));break;end;end,if(abs(n)==1)k=2;l=0;end,if(k==2)l=l+1;x=x*2;end,e=dec2base(l,k)-48;o=xor(e,circshift(e,[0 1]));g=~o(end);if(~o|nnz(o==1)~=numel(e)-g),u=n*k;else,if((-1)^g==sign(n)),u=sign(n)*k^(base2dec([e(2:end-1) 1]+48,k)-(k==2));else,u=n*k;end,end,end
  • অ-প্রতিদ্বন্দ্বিতা কারণ এটি সর্বশেষ র‌্যাঙ্কিংয়ের জন্য সংশ্লেষের একটি ভাল রেকর্ড ভেঙেছে, আমি যতটা সম্ভব সম্ভব এটি সংক্ষিপ্ত করার জন্য সংগ্রাম করছি।

  • মতলবটিতে নির্ভুলতার বিষয়ে কিছু অযৌক্তিক বাগ যা আমার কোডকে ব্যঙ্গাত্মকভাবে বড় করে তোলা ছাড়া আর কোনও উপায় খুঁজে পেল না, অন্যদিকে আমি যে ম্যাপিংটি বেছে নিই তা প্রধান ফ্যাকার এবং এন-অ্যারি লগারিদমের ক্ষেত্রে ছিল।

ফাঁসি

 f(2)

 1

 f(1)

 2

 f(-2)

 -4

 f(-4)

 -8

 f(-8)

 -1

 f(0)

 0



 ----------------------------

ব্যাখ্যা

  • ননউইং, প্রথমে, যে কোনও সংখ্যা N=e1^x1*e2^x2...এই বেস থেকে প্রাইমসের এক্সটেন্টারের পণ্য হিসাবে লেখা যেতে পারে আমি চক্রের চিত্রগুলি মানচিত্রের জন্য বেছে Cনিয়েছি যা ক্ষুদ্রতম ফ্যাক্টরের বৃহত্তম ক্ষতিকারক (অগত্যা প্রাইম নয়) থেকে বের করা হয় যে এন এর নিখুঁত শক্তি ।

  • সরল কথায়, N=P^xযেখানে পি সবচেয়ে ক্ষুদ্রতম নিখুঁত মূল, xচক্রের জন্য সঠিকভাবে দুটি প্রয়োজনীয় পদ বোঝায়: x=Ʃ(r*P^i)একটি শব্দ Pচক্রের ভিত্তি পাশাপাশি মূল সংখ্যা এন এর জন্য একটি নিখুঁত মূল, এবং kচক্রের ডিগ্রি C=p^k, যেখানে i1 এবং k এর মধ্যে পরিবর্তিত হয়, সহগের r1 টি বাড়ানো হয় এবং নীচের প্রাক-চিত্রের জন্য পি -1 দ্বারা আবদ্ধ হয় যতক্ষণ না সমস্ত সহকর্মী r = 1 তে সেট না হয়, সুতরাং আমরা সেই চক্রের শুরুতে চলে যাই।

  • চক্রের মধ্যে সংঘর্ষ এড়াতে তাদের পণ্যগুলির চেয়ে প্রাইমগুলির ক্ষয়ক্ষতির পছন্দটি সঠিক, কারণ দুটি চক্র ঘাঁটির উদাহরণ 3এবং 2তাদের মধ্যে একটি মিল বিন্দু হতে পারে 3*2, সুতরাং এটি এড়ানো হয় যেহেতু একটি চক্র তার ডিগ্রিটির চেয়ে বেশি ডিগ্রি দ্বারা সংজ্ঞায়িত হয় বেস, এবং গেটপয়েন্টের জন্য বেস 6এবং ডিগ্রি 1 এর আরও একটি চক্র রয়েছে ।

  • নেতিবাচক সংখ্যাগুলি একটি ব্যতিক্রম রাখে, এটি হিসাবে, আমি নেতিবাচক সংখ্যার জন্য বিজোড় ডিগ্রি এবং বাকীগুলির জন্য এমনকি ডিগ্রি সংরক্ষণ করেছি। তা কেমন করে ?

    একটি চক্রের মধ্যে এম্বেড থাকা যে কোনও সংখ্যা এন এর P^kজন্য লেখা হয় P^(a0*P^i0+a1*P^i1+...), পরিমাণটি (a0*P^i0+a1*P^i1+...)পি-অ্যারি বেসে ট্রান্সলেটেড হয় a0,a1,...., এই বিন্দুটি স্পষ্ট করতে যদি (পি = 2) ক্রমটি বাইনারি বেসে থাকা আবশ্যক। ইতিবাচক / নেতিবাচক ডিগ্রি এবং (+/- 1) ব্যতিক্রম নির্ধারণ না করে প্রেজেন্টাল হিসাবে জানা যায়, একটি সংখ্যা N ডিগ্রি চক্রের কিনারায় kথাকে এবং যদি কেবল অনুক্রম Aহিসাবে 1111..{k+1}..10বা 111..{k}..1সমস্ত ঘাঁটির জন্য লেখা হয় , অন্যথায় কোনও ঘোরানোর দরকার নেই, সুতরাং k/k'উভয়ের জন্য কোনও স্বতন্ত্র / এমনকি ডিগ্রির জন্য নেতিবাচক / ধনাত্মক শর্ত নির্ধারণ করে ফর্মটিতে লিখিত একটি বিজোড় অনুক্রম তৈরি করে 101..{k}..100, 101..{k'}..10যথাক্রমে নেতিবাচক / ধনাত্মক সংখ্যা-চক্রের প্রারম্ভ প্রান্তের জন্য একটি এমনকি ক্রমও আকারে লেখা হয় ।

    উদাহরণ:

    একটি সংখ্যা নিয়ে N=2^10, x=10=2^1+2^3এ সিকোয়েন্স এ লেখা হয়েছে A=1010, এই ধরণের ক্রমটি ধনাত্মক সংখ্যা-চক্রের একটি সীমাবদ্ধ প্রান্তকে লক্ষণ করে, যা C=2^3পরবর্তী চিত্রটি প্রারম্ভ প্রান্তটি A=011যা 8, তবে , এই ফলাফলটিকে স্ট্যান্ডার্ড করে (+ / -) 1 টি ব্যতিক্রম 2^10/2মানচিত্র 8/2এবং পূর্ববর্তী চিত্রটি অবশ্যই ঘোরানো হবে।

    একটি সংখ্যা নিয়ে N=-3^9, x=9=3^2এ সিকোয়েন্স এ লেখা আছে A=100, এই ধরণের ক্রমটি নেতিবাচক সংখ্যা-চক্রের একটি সীমাবদ্ধ প্রান্তকে লক্ষণ করে, যা C=3^1পরবর্তী চিত্রটি প্রারম্ভ প্রান্ত A=01যা 3, কিন্তু, এই ফলাফলটিকে নেতিবাচক / ধনাত্মক রূপে অভিযোজিত করে শর্ত -3^9মানচিত্র -3

  • এই দম্পতির জন্য (-/+)1, আমি চক্র-ঘাঁটিগুলির সংখ্যার মধ্যে এটি অনুপ্রবেশের কল্পনা করেছিলাম 2, একটি অনুমানে যে চক্রীয় গোষ্ঠীগুলির একটি সাধারণ ক্রম {2,4}{8,16,32,64}..অন্য আকারে তৈরি করা হয় {1,2}{4,8,16,32}.., এটি পূর্ববর্তী উপাদানগুলির কোনও ক্ষতি রোধ করে এবং সম্পন্ন অপারেশনটি পপিংয়ের সাথে সরে যেতে চলেছে একটি নতুন উপাদান।


ফলাফল:

চক্রীয় সংখ্যাগুলির প্রথম যুক্তিসঙ্গত ব্যাপ্তি যাচাই করতে এই ছোট্ট কোড-শীটটি চালাচ্ছেন:

for (i=1:6) 
index=1;if(max(factor(i))>=5) index=0;end
for ind=0:index
j=f(((-1)^ind)*i); while(((-1)^ind)*i~=j)fprintf('%d ',j);j=f(j);end,fprintf('%d \n',(-1)^ind*i),pause,end,
end

এটি এই ফলাফলের দিকে নিয়ে যায়

 2 1 
 -2 -4 -8 -1 
 1 2 
 -4 -8 -1 -2 
 9 27 3 
 -9 -27 -81 -243 -729 -2187 -6561 -19683 -3 
 8 16 32 64 128 256 512 4 
 -8 -1 -2 -4 
 25 125 625 3125 5 
 36 216 1296 7776 46656 6 
 -36 -216 -1296 -7776 -46656 -279936 -1679616 -10077696 -60466176 -362797056 -2.176782e+009 -1.306069e+010 ??? Error using ==> factor at 27

সর্বশেষটিটি সেগমেন্টেশন-ত্রুটি তবে এটি [-127,127] স্ট্যান্ডার্ড স্বাক্ষরিত-পূর্ণসংখ্যা পরিসীমা ফিট করে।


আমি এই কৌশলটি কিছুক্ষণ আগে আমার একটি পুরানো সি প্রোগ্রামে হ্যাশ ফাংশনগুলি সংজ্ঞায়িত করতে ব্যবহার করেছি, এটি ঝরঝরে কাজ করে!
Abr001am

0

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

f=(n,i=0,j=0,k=0,l=1,m=i<0?-i:~i)=>n-i?f(n,m,k++?j:i,k%=l,l+!k):++k-l?m:j

ক্রমটি (0, -1, 1, -2, 2, -3, 3, ...) nগণনা করে কাজ করে যতক্ষণ না এটি পাওয়া যায় , চক্রগুলি যেমন চলছে তেমন গণনা করে। iবর্তমান এন্ট্রি রয়েছে; jবর্তমান চক্রের সূচনা, চক্রের kমধ্যে সূচক , বর্তমান চক্রের lদৈর্ঘ্য এবং mঅনুক্রমের পরবর্তী প্রবেশদ্বার রয়েছে। একবার যদি আমরা খুঁজে nপাই jযে আমরা চক্রের শেষে থাকি বা mনা থাকি তবে তা গ্রহণ করি ।

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