একটি কিউব কে কত কিউব কেটে যাবে তা গণনা করুন


9

কিছু কিউব কল্পনা করুন যা আমরা অবশিষ্ট টুকরো ছাড়াই আরও ছোট কিউবগুলিতে কাটতে পারি।

একটি ঘনক্ষেত্র কে কত কিউব কেটে যাবে তা সন্ধান করুন।

উদাহরণস্বরূপ, একটি ঘনকটি 8, 27 (স্পষ্টতই পূর্ণসংখ্যার তৃতীয় শক্তি) এবং 20 (19 টি ছোট কিউব প্লাস অন্যের আকারের আটগুণ বেশি, চিত্র দেখুন) কেটে নেওয়া যেতে পারে।
এখানে কিছু সহায়তা দেখুন: http://mathworld.wolfram.com/CubeDissection.html

এখানে চিত্র বর্ণনা লিখুন প্রোগ্রামটিকে ইনপুট পূর্ণসংখ্যার n( 0 <= n <= 1 000) হিসাবে নেওয়া উচিত এবং সমস্ত সংখ্যা কম বা সমানভাবে মুদ্রণ করা উচিত nযাতে একটি ঘনকটি সেই সংখ্যার কিউবকে কাটা যায়। মনে করুন যে ঘনকটি 1 কিউব করে কেটে 0 কিউবকে করা যায় না।

আপনি কেবলমাত্র ইন্টিগ্রাল ডেটা-টাইপ (কোনও অ্যারে, অবজেক্টস ইত্যাদি) আকারের 64-বিটের চেয়ে বেশি ব্যবহার করতে পারেন। সংক্ষিপ্ততম কোড জিতেছে।


এটির সম্ভাবনা রয়েছে তবে আপনার এটি আরও স্পষ্টভাবে নির্দিষ্ট করা দরকার। একটি ঘনকটি সত্যই 20 কিউবকে কেটে নেওয়া যেতে পারে: এটি মূল 1/3 পার্শ্বের 27 কিউবকে কাটার পরিবর্তে, মূলটি 1/3 পাশের 19 কিউবকে কেটে নিন এবং এটি 8 গুণ বড় (পাশের 2/3 আসল।) হ্যাঁ আমি মনে করি যে কোনও ছবি সহায়ক হবে
স্তরের নদী সেন্ট

এটি আমি আঁকানো একটি সুন্দর রুক্ষ কিউব, এটিকে পরিবর্তন করতে নির্দ্বিধায়। প্রথম দর্শনে এটি তুচ্ছ মনে হয় তবে আমার মনে হয় 125-216 এর কাছাকাছি একটি আকর্ষণীয় পরিসীমা রয়েছে (5 interesting 3-6 range 3।) এটি সম্ভবত যে খুব বড় সংখ্যক জন্য প্রায় সব বিভাগই সম্ভব।
স্তরের নদী সেন্ট

আমরা দেখব যে কিছু থ্রেশহোল্ডের পরে সমস্ত সংখ্যা সম্ভব হবে কিনা।
সোমনিয়াম

3
উত্তরটি এখানে আসলে: mathworld.wolfram.com/CubeDissection.html
স্তর নদী সেন্ট

1
যেহেতু আমরা এখন একটি মোটামুটি তুচ্ছ সমাধান আছে, আপনি কোড গলফ এই ফিরে পরিবর্তন করুন অথবা কিছু লাগাতে চান পারে সত্যিই জমা উপর কঠিন নিষেধাজ্ঞা।
মার্টিন এন্ডার

উত্তর:


1

গল্ফস্ক্রিপ্ট, 55 (বা 43 42)

{.:^}{.47>20{.^>^@- 7%|!|}:/~1/38/39/{}{;}if^(}while;]`

এখানে পরীক্ষা করা যেতে পারে (কেবল 2 লাইনে নম্বর পরিবর্তন করুন) এবং কেবলমাত্র সংগ্রহ বা সমস্যা সমাধানের জন্য নয়, কেবলমাত্র অ্যারে (কোডের শেষ দুটি অক্ষর) ব্যবহার করুন printing যদি আপনি এটি ছেড়ে দেন তবে সমস্ত ফলাফল সংক্ষিপ্ত হয়ে যাবে।

পদ্ধতি: প্রদত্ত এন থেকে সরান নীচে: বর্তমান সংখ্যা যদি 47 এর বেশি হয় বা 1 + 7x, 20 + 7x, 38 + 7x, বা 39 + 7x ফর্মের যেখানে x = কোনও অ-নেতিবাচক পূর্ণসংখ্যার হয়, তবে এটি স্ট্যাকের উপর রাখুন অন্যথায় এটি ফেলে দিন।

সংক্ষিপ্ত উত্তর (43 বাইট):

{: / 6 + {7 * / + +}% |}: &;): একটি, 48, ^ 1 & 20 & 38 & 39 এবং {একটি <}, `

):a,48,^1{:/6+,{7*/+}%|}:&~20&38&39&{a<},`

পদ্ধতি: অনুরূপ, তবে কয়েকটি সেট থিউরি অপ্স সহ। এটি অ্যারেগুলি ব্যবহার করে তাই এটি প্রযুক্তিগতভাবে কোনও গ্রহণযোগ্য উত্তর নয়। এখানে পরীক্ষা করা যায় । বিটিডব্লিউ: কেউ কখনও বলেনি যে তাদের কোনও বিশেষ ক্রমে থাকতে হবে;)


1

গণিত, 62 বাইট (বা 52)

এটি হার্ডকোডযুক্ত উত্তর, আকর্ষণীয় কিছু নয়।

If[EvenQ@BitShiftRight[164015534735101,n],Print@n]~Do~{n,1000}

এটি একটি 52 বাইট লম্বা তবে আমার নিয়ম লঙ্ঘন করে - এটি বৃহত পূর্ণসংখ্যার (2 এর শক্তি) এবং তালিকাগুলি (রেঞ্জ) ব্যবহার করে।

Select[Range@1000,EvenQ@Floor[164015534735101/2^#]&]


0

সি, 72

i;main(){for(scanf("%d",&i);i;i--)0x952BD7AF7EFC>>i&1||printf("%d ",i);}

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

মজার বিষয় হ'ল বাস্তবে এটি কাজ করে না। উপরের কোডটি সংকলন করে G৫ টি পর্যন্ত জিসিসিতে জরিমানা করে But তবে এই সংখ্যার উপরে সংকলকটিতে একটি বাগ (বা "বৈশিষ্ট্য") রয়েছে। এটি 0x952BD7AF7EFC>>iহিসাবে ব্যাখ্যা 0x952BD7AF7EFC>>i%64। সুতরাং এটি ips১ (+৪ + ২ থেকে +৪ + through এর মাধ্যমে) এর মধ্যে 66 নম্বরগুলি এড়িয়ে যায় (উদাহরণস্বরূপ)।

ভিজ্যুয়াল স্টুডিওতে চালানোর জন্য, আরও কিছুটা বয়লারপ্লেট প্রয়োজন (এটি আপনাকে অন্তর্ভুক্ত পূর্ণসংখ্যা এবং #includeগুলি এর মতো জিনিসগুলি দিয়ে দূরে সরে যায় না )) প্রোগ্রামটি শেষ হয়ে গেলে এটি 257 পর্যন্ত ঠিক হয়ে যায় ... তারপরে এটি 258 এড়িয়ে যায় 263 (256 + 2 256 + 7 এর মাধ্যমে)) তাই এটি গ্রহণ করছেi%256.

আমি এটি পরে ঠিক করতে পারি (যদি আমাকে বিরক্ত করা যায়।) নৈতিক: সংকলক ম্যানুয়ালগুলি আপনাকে সাধারণত বিট শিফ্টের উপরের সীমাটি বলে না। তার কারণ আছে!


এটি আমার উত্তর হিসাবে ঠিক একই নীতিটি ব্যবহার করে)
সোমনিয়াম

প্রকৃতপক্ষে, আমরা এমনকি মূলত একই ধ্রুবক (বিট শূন্য অব্যবহৃত এবং বিট 1 নম্বর 1 প্রতিনিধিত্ব করে) সিআই মধ্যে হেক্সে ধ্রুবক নির্দিষ্ট করে একটি একক বাইট সংরক্ষণ করুন। আমার কাছে 0কিছুটা শূন্যের জন্য আছে , আমি 1আই = 0 এর ক্ষেত্রে এটি আপনার মতো বদলে দিতে পারি । তবে এটি কখনই প্রদর্শিত হয় না।
স্তরের নদী সেন্ট

@ স্টেভেভারিল দয়া করে কীভাবে NUM>>iপরিবর্তন হয় তা ব্যাখ্যা করুন NUM>>i%64। এছাড়াও যদি কোনও 64-bitসংখ্যা zero
64৪

@ মানাভ সত্যিই এটি শূন্য হওয়া উচিত। যেমনটি আমি বলি, সংকলকটিতে একটি বাগ রয়েছে। NUM>>iহয়ে যায় NUM>>(i%64)বা সমতুল্য হয় NUM>>(i&63)কারণ সংকলক iবিটশীট সম্পাদনের আগে বামতম বিটগুলি কেটে দেয়। জিসিসি কেবলমাত্র সঠিকতম 6 টি বিট বিবেচনা করে। ভিজ্যুয়াল স্টুডিওতে একই বাগ রয়েছে তবে কেবলমাত্র ডানদিকে 8 টি বিট বিবেচনা করে কিছুটা ভাল NUM>>(i%256)। কৌতূহলের বাইরে আমি আইডিয়নের চেষ্টা করব যখন আমি কাজ থেকে বাড়ি আসব।
স্তরের নদী সেন্ট

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