{0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4 {এর জন্য সংক্ষিপ্ত প্রকাশ


24

পূর্ণসংখ্যার তালিকা দেওয়া {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4}। যারা এই সংখ্যাগুলি আগ্রহী তাদের জন্য সপ্তাহের দিন গণনায় ব্যবহৃত হয়।

সপ্তাহের দিন = (m[n] + d + y + y>>2 + y/400 - y/100) % 7;, যেখানে m[n]- প্রকাশটি আমি অনুসন্ধান করছি, d- মাসের দিন, y- year - (month <= 2)

পাটিগণিত, যুক্তি এবং বিটওয়াইস অপারেটর সমন্বয়ে এক্সপ্রেশন তৈরি করুন, যা ইতিবাচক পূর্ণসংখ্যার nপূর্ণসংখ্যার জন্য আউটপুট তৈরি করবে mযাতে m % 7তালিকায় এন-তম সংখ্যার সমান হয়।

শাখা, টের্নারি অপারেটর, টেবিল লুকআপ এবং পয়েন্টারগুলির অনুমতি নেই।

স্কোর:
1 - | & ^ ~ >> <<অপারেটরদের জন্য
1.1 - + - < > <= >= == != ! && ||অপারেটরগুলির জন্য
1.2 - *অপারেটরের জন্য
1.4 - / %অপারেটরগুলির জন্য

সর্বনিম্ন স্কোর জেতে উত্তর।

ব্যক্তিগতভাবে আমি খুঁজে পেয়েছি:

(41*n)>>4+((n+61)>>4)<<2স্কোর 6.4। আমি ভেবেছিলাম যে এটি দিয়ে শুরু করা এতটা নিজস্ব নিজস্ব প্রকাশ খুঁজে পাওয়া শক্ত হবে।


আমার ধারণা অ্যারে ডিरेফারেন্সিং (এবং আত্মীয়স্বজন) এরও অনুমতি নেই?
জন ডিভোরাক

ওহ, হ্যাঁ অবশ্যই, আমি প্রশ্নটি সম্পাদনা করেছি।
সোমনিয়াম

6
প্রশ্নটি কিছু অনুপ্রেরণার দ্বারা ব্যাপকভাবে উন্নত হবে। এই সংখ্যাগুলি কোথা থেকে আসে?
পিটার টেলর

table lookupsআকর্ষণীয়
বাক্যাংশটি

4
কেন স্কোর% 7 গণনা না? হতে পারে আরও একটি সমাধান% ব্যবহার না করে। শূন্য কি ইতিবাচক , নেতিবাচক, উভয়ই বা কিছুই না?
টমাস ওয়েলারের

উত্তর:


34

2 2.2

আমি স্বেচ্ছাচারিত নির্ভুলতা পাটিগণিত পছন্দ করি।

0x4126030156610>>(n<<2)

অথবা, আপনি যদি হেক্স পছন্দ না করেন,

1146104239711760>>(n<<2)

টেস্ট:

print([(0x4126030156610>>(n<<2))%7 for n in range(1,13)])
[0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4]

4*nপরিবর্তে আপনি সম্ভবত একটি সারণী তৈরি করতে পারেন এবং এটি লিখে 0.2 পয়েন্ট সংরক্ষণ করতে পারেন n<<2?
xnor

@xnor একেবারে! কেবলমাত্র অষ্টাল থেকে হেক্সাডেসিমালে স্যুইচ করতে। ঠিক সেকেন্ড হিসাবে।
isaacg

কুল। আমি দৃ convinced়ভাবে নিশ্চিত যে আরও ভাল কিছু করতে পারে না কারণ এটির জন্য কেবলমাত্র একটি অপারেশন ব্যবহার করা দরকার এবং তাদের সবার মনে হয় অনেকগুলি কাঠামো মোড রয়েছে 7। আমার পূর্ণসংখ্যার তল বিভাগের সেরা প্রার্থী এবং এর const/nসাথে দ্বন্দ্বের মধ্যে চলে । n=4n=8
xnor

@ এক্সনর আর একটি ঘনিষ্ঠজন হ'ল const%nএন = 1,2 এবং 3 ব্যতীত সমস্ত কিছুতেই সন্তুষ্ট হতে পারে
ইসাএাকজি

আমি একই জিনিস করতে যাচ্ছ, কিন্তু আপনি আমাকে এটা দ্বারা মেরেছ ...
ɐɔıʇǝɥʇuʎs

32

2.0

(127004 >> i) ^ 60233

বা (স্কোর ২.২):

(i * 3246) ^ 130159

সমস্ত নিষ্ঠুর শক্তি সঙ্গে পাওয়া যায় :-)


যেহেতু এটি ইস্যাকের উত্তর হিসাবে একই স্কোর রয়েছে তবে 64৪-বিট পূর্ণসংখ্যা ব্যবহার করে না, তাই আমি এটি গ্রহণযোগ্য উত্তর হিসাবে বেছে নিচ্ছি। তোমার উত্তরের জন্য ধন্যবাদ!
সোমনিয়াম

8
@ user2992539 এটি উত্তম হলেও এই উত্তরটি 32-বিট পূর্ণসংখ্যার ব্যবহার করে, আপনি আপনার চ্যালেঞ্জের মধ্যে এই মানদণ্ডটি নির্দিষ্ট করেন নি, যা ইস্যাকের উত্তরটিকে পুরোপুরি বৈধ করে তুলেছে। সুতরাং, দুটি উত্তর টাই এবং আমি মনে করি যে এই স্কোরটি পেয়েছে এমন প্রথমটিকে গ্রহণ করা কেবলমাত্র ন্যায়সঙ্গত । (কুডোস টু সুপার চাফউইন, যদিও, +1!)
মার্টিন এন্ডার

@ m.buettner আমাকে আপনার সাথে একমত হতে হবে। পরবর্তী সময়, আমি বিবরণ এবং উত্তর নির্বাচনের সাথে আরও সতর্ক থাকব।
সোমনিয়াম

অন্যদের শেখার জন্য, আপনি কীভাবে নিষ্ঠুর বল গণনা করেছিলেন তা বিশদভাবে বলতে পারেন?
থমাস ওয়েলার

@ থমাস আমি forসূত্রের জন্য সমস্ত মান পি, কিউ পরীক্ষা করে সবেমাত্র একটি ডাবল লুপ করেছি, (p >> i) ^ qতারপরে একটি কফি নিতে গিয়েছিলাম, এবং 10 মিলিয়ন পরে ফলাফল পড়তে এসেছি।
আর্নৌড

8

35.3

আমি সন্দেহ করি এটি তালিকা তৈরির সবচেয়ে কম দক্ষ পদ্ধতি হতে পারে:

1.7801122128869781e+003 * n - 
1.7215267321373362e+003 * n ^ 2 + 
8.3107487075415247e+002 * n ^ 3 - 
2.0576746235987866e+002 * n ^ 4 + 
1.7702949291688071e+001 * n ^ 5 + 
3.7551387326116981e+000 * n ^ 6 - 
1.3296432299817251e+000 * n ^ 7 + 
1.8138635864087030e-001 * n ^ 8 - 
1.3366764519057219e-002 * n ^ 9 + 
5.2402527302299116e-004 * n ^ 10 - 
8.5946393615396631e-006 * n ^ 11 -
7.0418841304671321e+002

আমি সবেমাত্র বহুবর্ষীয় রিগ্রেশন গণনা করেছি। আমি কী ভয়ানক পদ্ধতিতে চেষ্টা করা যেতে পারে তা দেখতে প্রলুব্ধ হয়েছি।

উল্লেখযোগ্যভাবে, ফলাফলটি বৃত্তাকার হলে আমি ৩.৩ পয়েন্ট সংরক্ষণ করতে পারতাম। এই মুহুর্তে, আমি এটি গুরুত্বপূর্ণ মনে করি না।


5

3.2

জিরো ভিত্তিক সমাধান:

7 & (37383146136 >> (i*3))

একটি ভিত্তিক সমাধান:

7 & (299065169088 >> (i*3))

আমি প্রথমে ভেবেছিলাম %7অপারেশনটিও গণনা করা হবে এবং %এখানে একটি ব্যয়বহুল অপারেশন হওয়ায় আমি এটিকে ছাড়াই সমাধান করার চেষ্টা করেছি।

আমি ৩.২ এর মত ফলাফল এনেছি:

// Construction of the number
// Use 3 bits per entry and shift to correct place
long c = 0;
int[] nums = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4};
for (int i = nums.Length - 1; i >= 0; i--)
{
    c <<= 3;
    c += nums[i];
}
// c = 37383146136

// Actual challenge
for (int i = 0; i < 13; i++)
{
    Console.Write("{0} ",7 & 37383146136 >> i*3);
}

আমি এই পদ্ধতির (বিনা %) ব্যবহার করে অনুকূলিতকরণে আগ্রহী হব । ধন্যবাদ।


এটি দুর্দান্ত, সম্ভবত এটি আমাকে কোনও দিন সহায়তা করবে) আপনি কীভাবে মনে করেন, পুরো সূত্রটি হ্রাস করার জন্য আমার আলাদা প্রশ্ন তৈরি করা উচিত?
সোমনিয়াম

1
কীভাবে (0426415305230 >> (i*3)) & 7? আপনি বিপরীত ক্রমে আউটপুট অঙ্কগুলি দেখতে পারেন।
সিজে ডেনিস

@ সিজেডেনিস: আমি মনে করি সি # তে কোনও অষ্টাল সংখ্যা নেই।
থমাস ওয়েলার 15

আমি ভেবেছিলাম এটা ঠিক সি? আমি সি # তে অন্য কোনও রেফারেন্স দেখতে পাচ্ছি না।
সিজে ডেনিস

0

পাইথন (3)

যেহেতু আজকাল এই প্রশ্নগুলির মধ্যে বেশ কয়েকটি রয়েছে তাই আমি 3 (বা 2) টোকনে স্বয়ংক্রিয়ভাবে সেগুলি সমাধান করার জন্য একটি প্রোগ্রাম করার সিদ্ধান্ত নিয়েছি। এই চ্যালেঞ্জের ফলাফল এখানে:

G:\Users\Synthetica\Anaconda\python.exe "C:/Users/Synthetica/PycharmProjects/PCCG/Atomic golfer.py"
Input sequence: 0 3 2 5 0 3 5 1 4 6 2 4
f = lambda n: (72997619651120 >> (n << 2)) & 15
f = lambda n: (0x426415305230L >> (n << 2)) & 15
f = lambda n: (0b10000100110010000010101001100000101001000110000 >> (n << 2)) & 15

Process finished with exit code 0

প্রমাণ যে এটি কাজ করে:

f = lambda n: (72997619651120 >> (n << 2)) & 15

for i in range(12):
   print i, f(i)

0 0
1 3
2 2
3 5
4 0
5 3
6 5
7 1
8 4
9 6
10 2
11 4

আপনার সমাধানকারী কীভাবে অপারেশনগুলির ব্যয় বিবেচনা করবেন?
থমাস ওয়েলার

@ThomasW। এটি হয় না, এটি সর্বদা একটি ডান শিফট, সম্ভবত একটি বাম শিফট (মানগুলি 1 বিট না হলে) এবং একটি ব্যবহার করবে &
ɐɔıʇǝɥʇuʎs
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.