কিউবয়েডের ধরণ নির্ধারণ করুন


17

পরিচিতি:

আমি টুইস্টি ধাঁধা সংগ্রহকারী এখানে আপনি আমার বর্তমান 300 ডলার ধাঁধা সংগ্রহ করতে পারেন।

আমি মনে করি সকলেই নিয়মিত রুবিকের কিউব (3x3x3 কিউব) জানেন, যা একটি এনএক্সএনএক্সএন কিউব। এছাড়াও কিউবাইডস (ব্লক-আকারের ধাঁধা) রয়েছে যা বিভিন্ন রূপে আসে, সম্ভবত সুপারএন্টিওভিওলদি আরও ভালভাবে ব্যাখ্যা করেছেন :

  • নিয়মিত ডোমিনো কিউবিডস (যেমন 2x2x3 ; 2x3x3 ; 3x3x4 ; ইত্যাদি) - তারা এনএক্সএনএক্স (এন + ও) বা এনএক্স (এন + ও) এক্স (এন + ও) আকারে আসে, যার দুটি দ্বৈত মাত্রা এবং একটি এমনকি, বা দুটি এমনকি এবং একটি বিজোড়।
  • শেপশিফটার কিউবয়েডস (যেমন 2x2x4 ; 3x3x5; 3x3x9 ; 4x4x6 ; ইত্যাদি) - এগুলি এনএক্সএনএক্স (এন + পি) আকারে আসে , যা নাম অনুসারে, শেপশিফ্টস (সমস্ত দিকের দিকে)। সমস্ত তিনটি মাত্রা হয় বিজোড় বা এমনকি।
  • ফ্লপি কিউবিডস (যেমন 1x3x3 ; 2x4x4 ; ইত্যাদি) - এগুলি এনএক্স (এন + পি) এক্স (এন + পি) আকারে আসে যা প্রায় শ্যাপশিফটারগুলির মতোই, তবে তথাকথিত ফ্লপি প্যারিটি সহ।
  • ব্রিক কিউবয়েডস ( 2x3x4 ; 3x4x5 ; 2x3x5; ইত্যাদি) - এগুলি এনএক্স (এন + ও) এক্স (এন + পি) আকারে আসে যা নিয়মিত ডোমিনো কিউবয়েডের মতো দুটি দ্বিমাত্রিক মাত্রা এবং এমনকি একটি, বা দুটি এমনকি এবং একটি বিজোড়; তবে একই মাত্রাগুলির কোনও নেই।
  • চূড়ান্ত শেপশিফটারগুলি (যেমন 2x4x6 ; 3x5x7; 2x4x10; ইত্যাদি) - এগুলি Nx (N + O) x (N + R) আকারে আসে এবং কোনও দিক থেকে শ্যাফিশিফ্ট হয়। তিনটি মাত্রা হয় বিজোড় বা এমনকি; তবে একই মাত্রাগুলির কোনও নেই।

চ্যালেঞ্জ:

ইনপুট:

নিম্নলিখিত সীমাবদ্ধতার সাথে একটি ধনাত্মক পূর্ণসংখ্যা n : 8 <= n <= 125.
n তিনটি মানের (মাত্রা) এর পণ্য হিসাবে অনন্যভাবে ডিকোড করা যেতে পারে, যার মধ্যে প্রতিটি 2 এবং 5 এর মধ্যে অন্তর্ভুক্ত।

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

আউটপুট / পরীক্ষার কেস:

আপনার প্রোগ্রাম / ফাংশনটিতে এই সমস্ত ক্ষেত্রে সমর্থন করা উচিত, প্রতিটি সম্ভাব্য ত্রিমাত্রিক কনফিগারেশনে প্রান্ত দৈর্ঘ্য 2 থেকে 5 অবধি:

Input   Cuboid/Cube   Type/Output
8       2x2x2         Cube
12      2x2x3         Regular Domino Cuboid
16      2x2x4         Shapeshifter Cuboid
20      2x2x5         Regular Domino Cuboid
18      2x3x3         Regular Domino Cuboid
24      2x3x4         Brick Cuboid
30      2x3x5         Brick Cuboid
32      2x4x4         Floppy Cuboid
40      2x4x5         Brick Cuboid
50      2x5x5         Regular Domino Cuboid
27      3x3x3         Cube
36      3x3x4         Regular Domino Cuboid
45      3x3x5         Shapeshifter Cuboid
48      3x4x4         Regular Domino Cuboid
60      3x4x5         Brick Cuboid
75      3x5x5         Floppy Cuboid
64      4x4x4         Cube
80      4x4x5         Regular Domino Cuboid
100     4x5x5         Regular Domino Cuboid
125     5x5x5         Cube

চ্যালেঞ্জ বিধি:

  • 8-125 ব্যাপ্তির মধ্যে যে কোনও নন-কিউব / নন-কিউবাইড ইনপুট ফলাফল হিসাবে 'কিছুই না' হওয়া উচিত none
  • আউটপুট ফর্ম্যাটটি আপনার নিজের পছন্দ। আমি মনে করি সবচেয়ে যুক্তিযুক্ত হল পূর্ণসংখ্যা, যেমন 0= 'কিছুই নয়'; 1= ঘনক্ষেত্র; 2= নিয়মিত ডোমিনো কিউবয়েড; 3= শাপশিফটার কিউবয়েড; 4= ফ্লপি কিউবয়েড; 5= ব্রিক কিউবয়েড। অন্য কোনও আউটপুট ফর্ম্যাটও ঠিক আছে, যতক্ষণ আপনি কোনটি ব্যবহার করেছেন তা নির্দিষ্ট করে দিন।

সাধারণ নিয়ম:

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


1
আপনার সংগ্রহে কোন হেলিকপ্টার কিউব নেই?
জিবি

@ জিবি না আমার কাছে একটি কার্ভি হেলিকপ্টার, কার্ভি হেলিকপ্টার প্লাস, কার্ভি কপ্টার তৃতীয়, কার্ভি চপ কিউব, হেলিকপ্টার ডোডেকাহেড্রন এবং কাস্টম-মেড সুপার কাঁচা কার্ভি হেলিকপ্টার তৃতীয় আছে, তবে কোনও হেলিকপ্টার কিউব নেই। :) এটি কার্ভি হেলিকপ্টারটির সাথে কিছুটা মিল, তবে আমি এটি কোনও দিন পেতে পারি।
কেভিন ক্রুইজসেন

ইনপুট সাজানো হয়? বা আমাদের কি ম্যানুয়ালি বাছাই করতে হবে?
ম্যাথু রোহ

@ ম্যাথেরহোহ ইনপুটটি একটি একক পূর্ণসংখ্যা (অর্থাত্ 24), সুতরাং আপনি এটি সম্পর্কে কী বাছাই করতে চান তা আমি জানি না?
কেভিন ক্রুইজসেন 14

উত্তর:


6

05 এ বি 1 ই , 26 21 বাইট

None: 0 Cube: 1 Regular Domino Cuboid: 2 Shapeshifter Cuboid: 3 Brick Cuboid: 4 Floppy Cuboid: 5

•S3X@I¨%÷'•5L¦3ãPÙIkè

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

ব্যাখ্যা

•S3X@I¨%÷'•            # push base-214 compression of the number 123224454212324512210
           5L¦         # push the list [2,3,4,5]
              3ã       # cartesian product with repetion of size 3
                P      # product of each sublist
                 Ù     # remove duplicates
                  Ik   # get the index of input in that list (-1 if non-existant)
                    è  # get the element at this index in the above number

আমি দেখতে পাচ্ছি যে একমাত্র জায়গাটি আমরা এখানে বাইট সংরক্ষণ করতে পারছি 123224454212324512210 নম্বর উত্পন্ন করার একটি আরও ভাল উপায় ।

এটি একটি প্রাইম থেকে কেবল 1-অফ, সুতরাং একটি সম্ভাব্য সংরক্ষণের জন্য সেই প্রাইমের সূচকটি খুঁজে পাওয়া এবং 9 বাইটেরও কম সূচক তৈরি করা সম্ভব।
আমি জানি না পাই-ফাংশনটি 21-সংখ্যার প্রাইমগুলির জন্য কতটা ভাল কাজ করে তবে এটি সম্ভাবনা হতে পারে।


ভাল লাগল, কিউব / কিউবয়েড নির্ধারণের জন্য আপনি কোন সূত্র / কিরক / প্যাটার্নটি ব্যবহার করেছেন তা দেখার জন্য আমি আগ্রহী। +1 টি
কেভিন ক্রুইজসেন

1
@ কেভিন ক্রুজসেন: আমি সম্ভবত একটি বা দুটি বাট সংরক্ষণ করতে সক্ষম হতে পারে। আমি চেষ্টা করার পরে ব্যাখ্যাটি যুক্ত করব। আমার একটি প্রাইম রয়েছে যাতে আমি অর্ডারটি খুঁজতে চাই (তবে
এটির

@ ইমিগন জিগস চতুর, কত দিন ধরে আছে k? !! ??!?!?!?!?!?!
ম্যাজিক অক্টোপাস উরন

ডিসেম্বর 30, 2015. যেহেতু @carusocomputing
আদনান

3

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

এই ফাংশনটি প্রথমে ইনপুটটির বৈধতা পরীক্ষা করে, তারপরে একটি সারণী থেকে সঠিক মানটি তুলবে।

আশ্চর্যজনক, দীর্ঘতম অংশ বৈধতা পরীক্ষা (হয় এন ফর্মের এক্স * Y * z- র সঙ্গে এক্স , Y এবং z- র মধ্যে [2,3,4,5] ?)। এটি করার একটি ছোট উপায় অবশ্যই থাকতে হবে, তবে আমি এখন পর্যন্ত এটি বের করতে পারি না।

n=>'NBBF..CRCC.BRR..SFRRRRR.B..C'[[34707324,0x80000800,4240,262208][n&3]>>n/4&1&&n%29]

একটি চরিত্র ফেরত দেয়:

  • এন : কিছুই না
  • সি : কিউব
  • আর : নিয়মিত ডোমিনো কিউবয়েড
  • এস : শ্যাপশিফটার কিউবয়েড
  • বি : ব্রিক কিউবয়েড
  • এফ : ফ্লপি কিউবয়েড

পরীক্ষা


1

রুবি, 106 98 96 বাইট

->n{[[x=25,2421],[15,53],[9,21],[4,1232504350200510002]].any?{|a,b|n%a<1&&x="00#{b}"[n/a]}?x:?0}

কারণ, কেন নয়, হার্ডকোডিং।

নির্দিষ্ট হিসাবে, 0 = 'কিছুই নয়'; 1 = ঘনক্ষেত্র; 2 = নিয়মিত ডোমিনো কিউবয়েড; 3 = শ্যাপশিফটার কিউবয়েড; 4 = ফ্লপি কিউবয়েড; 5 = ব্রিক কিউবয়েড


1

পার্ল 6 , 69 58 বাইট

{%(unique([X*] (2..5)xx 3)Z=>:32<AM0K21IHN61H5>.comb){$_}}

টাস্ক বিবরণে প্রস্তাবিত পূর্ণসংখ্যার আউটপুট ফর্ম্যাটটি ব্যবহার করে, এটি অবিশ্বাস্য মানটি প্রদান করে (Any) পরিবর্তে 0ইনপুট যে একটি বৈধ ঘনক্ষেত্র / কিউবইড গঠন না ক্ষেত্রে।

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

  1. unique([X*] (2..5)xx 3)

    তালিকা তৈরি করে 8 12 16 20 18 24 30 32 40 50 27 36 45 48 60 75 64 80 100 125

  2. :32<AM0K21IHN61H5>.comb

    তালিকা তৈরি করে 1 2 3 2 2 5 5 4 5 2 1 2 3 2 5 4 1 2 2 1(একটি বেস -32 আক্ষরিক থেকে)।

  3. %(   Z=>   )

    কী হিসাবে প্রথম তালিকার সাথে একটি হ্যাশ (সহযোগী মানচিত্র) এবং মান হিসাবে দ্বিতীয় তালিকা তৈরি করে Gene

  4.    {$_}

    ইনপুট নম্বর সহ হ্যাশ সূচক করে ..


হেই, আমি এখন দেখতে পেলাম যে আমি @ এমিগিনার 05 এ বি 1 ই উত্তরের মতো একই পদ্ধতি ব্যবহার করেছি। তবে আমি স্বাধীনভাবে এটি নিয়ে এসেছি, সৎ! :)
স্মিল

1

ব্যাচ, 163 বাইট

@set/as=0,c=29948521
@for /l %%i in (2,1,5)do @for /l %%j in (%%i,1,5)do @for /l %%k in (%%j,1,5)do @set/as+=c%%6*!(%%i*%%j*%%k-%1),c/=6,c+=14081593*!c
@echo %s%

প্রস্তাবিত আউটপুট ফর্ম্যাট ব্যবহার করে। ব্যাখ্যা: মৌলিক ধারণাটি প্রশ্নের মধ্যে বর্ণিত সংক্ষিপ্ত তালিকার তালিকাটি লুপ করা। প্রতিটি কিউবের জন্য, আমরা এটির ভলিউমটি ইনপুট পূর্ণসংখ্যা কিনা তা দেখার জন্য গণনা করি এবং যদি তা হয় তবে একটি সন্ধানের টেবিল থেকে কিউবের প্রকার গণনা করুন।

আসল সন্ধানের টেবিলটি অক্ষরের একটি স্ট্রিং ছিল, তবে একটি forলুপে স্ট্রিং ম্যানিপুলেশন করা জটিল so তাই আমি অঙ্কগুলিতে স্যুইচ করেছি যা অঙ্কগুলি থেকে বের করা যেতে পারে। দুঃখজনকভাবে ব্যাচটি 32-বিট পূর্ণসংখ্যার মধ্যে সীমাবদ্ধ তাই আমি সমস্ত সংখ্যার একক ভেরিয়েবলের সাথে ফিট করতে পারি না (এমনকি বেস 5 তে আপনি কেবল 13 সংখ্যা পেতে পারেন) সুতরাং পরিবর্তে আমি ভেরিয়েবলটি দুটি অংশে বিভক্ত করে, বেস 6 তে এনকোডড করেছি সুবিধার জন্য. 29948521হয় 2545522321বেস 6 যা বিপরীত ক্রম 10 ক্ষুদ্রতম cuboids এনকোড মধ্যে; এটি যখন অঙ্কগুলির বাইরে চলে যায় তখন আমরা যোগ করি 14081593যা 1221452321বেসে 6 টি 10 ​​বৃহত্তম কিউবিডগুলিকে এনকোডিং করে base

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