অ্যারে কি আনসফাল করা যায়?


15

পটভূমি

অত্যন্ত দক্ষ কার্ড হ্যান্ডলাররা এমন একটি কৌশল সক্ষম করতে সক্ষম হন যার মাধ্যমে তারা একটি ডেক পুরোপুরি অর্ধেক কাটান, তারপরে কার্ডগুলি পুরোপুরি ইন্টারলেভ করে। যদি তারা একটি সাজানো ডেক দিয়ে শুরু করে এবং নির্বিঘ্নে এই কৌশলটি টানা 52 বার সম্পাদন করে, ডেকটি সাজানো ক্রমে পুনরুদ্ধার করা হবে। আপনার চ্যালেঞ্জটি হ'ল কার্ডগুলির একটি ডেক একটি পূর্ণসংখ্যার অ্যারে নেওয়া এবং তা নির্ধারণ করা যা এটি কেবল ফারো সাফ্লা ব্যবহার করে বাছাই করা যায়।

সংজ্ঞা

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

লক্ষ্য

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

উদাহরণ

[1,1,2,3,5,8,13,21]  => True
[5,1,8,1,13,2,21,3] => True
[9,36,5,34,2,10,1] => True
[1,0] => True
[0] => True
[] => True
[3,2,1] => True
[3,1,2] => False
[9,8,7,6,5,4,3,2,1,0] => True
[9,8,7,6,5,4,3,2,0,1] => False
[3,1,4,1,5,9,2,6,9] => False
[-1,-1,-1,-2] => True

স্কোরিং

এটি তাই বাইট জয়ের সংক্ষিপ্ততম উত্স।


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

এটি কি কেবল "ইন-শফল এন + 1 বার নয় এবং দেখুন যে পথের তালিকাগুলির মধ্যে কোনও সাজানো আছে"?
lirtosiast

আসলে এন সময়ই যথেষ্ট, কারণ 2n বার এটি করা সমস্ত সম্ভাব্য ক্রম সন্ধানের নিশ্চয়তা পেয়েছে তবে আপনি কমপক্ষে প্রথম এনটিতে আরোহী বা উত্থানের ক্রমগুলির মধ্যে একটি পাবেন।
কুইন্টোপিয়া


1
প্রথম উপাদানটি কি সর্বদা প্রথম অবস্থানে থাকে না?
Eumel

উত্তর:


3

পাইথ - 26 25 24 বাইট

একাধিকবার ফারো সাফাল প্রয়োগ করতে এবং সমস্ত ফলাফল রাখার জন্য সংযোজিত হ্রাস ব্যবহার করে। তারপরে, এটি এর মাধ্যমে মানচিত্র তৈরি করে এবং যদি পরীক্ষা করা হয় যে তারা বাছাইয়ের অধীনে অস্থায়ী হয় তবে চেক করার জন্য যোগগুলি ব্যবহার করে কোনটি সত্য। ইতিবাচক বা শূন্য প্রদান করে।

smSI-db.usC_c2NQsC.tc2Qb

টেস্ট স্যুট


3

MATL , 41 বাইট

itn2\?YNh]tnt1+:"x[]2e!PY)ttZN~)tS=At.]wx

আউটপুট হয় 1বা 0

ব্যাখ্যা

i              % get input array
tn2\           % is size odd?
?              % if that's the case
  YNh          % concat NaN at the end
]              % end if
tn             % get size of input array
t1+:           % vector 1:n+1, where n is input size, so loop will be entered even with []
"              % for loop
  x[]2e!PY)    % delete result from previous iteration and do the shuffling
  ttZN~)       % remove NaN, if there's any
  tS=A         % check if array is sorted
  t.           % copy the result. If true, break loop
]              % end for
wx             % remove unwanted intermediate result

উদাহরণ

>> matl itn2\?YNh]tnt1+:"x[]2e!PY)ttZN~)tS=At.]wx
> [1,1,2,3,5,8,13,21]
1
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.