চেনাশোনা প্যাকিং


21

এই চিত্রটি একবার দেখুন। বিশেষত, প্রান্তগুলির গর্তগুলি কীভাবে সাজানো হয়।

এখানে চিত্র বর্ণনা লিখুন

( চিত্র উত্স )

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

কাজটি

nইনপুট হিসাবে একটি ধনাত্মক পূর্ণসংখ্যা দেওয়া , nযতটা সম্ভব শক্তভাবে প্যাক করা চেনাশোনাগুলির একটি সংগ্রহ দেখান ।

বিধি এবং ব্যাখ্যা

  • ধরুন চেনাশোনাগুলির 1 ইউনিটের ব্যাস রয়েছে।
  • পরিবর্তনশীল হ্রাস করতে হবে পরিধিটির দৈর্ঘ্য, যা গ্রুপের চেনাশোনাগুলির কেন্দ্রগুলির উত্তল হাল হিসাবে সংজ্ঞায়িত হয়েছে । এই চিত্রটি একবার দেখুন:

এখানে চিত্র বর্ণনা লিখুন

সরলরেখার তিনটি বৃত্তের ঘের 4 টি হয় (উত্তল হাল একটি 2x0 আয়তক্ষেত্র হয়, এবং 2 টি আবার দু'বার গণনা করা হয়), 120-ডিগ্রি কোণে সাজানোগুলি প্রায় 3.85 এর পরিধি থাকে এবং ত্রিভুজের একটি পরিধি থাকে শুধুমাত্র 3 ইউনিট। নোট করুন যে আমি অতিরিক্ত পাই ইউনিটগুলিকে অগ্রাহ্য করছি যা আসল পরিধিটি হবে কারণ আমি কেবলমাত্র চেনাশোনাগুলির কেন্দ্রগুলি দেখছি, তাদের কিনারাগুলি নয়।

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

উদাহরণ

নীচে আমার 1 থেকে 10 পর্যন্ত এন এর বৈধ এবং অবৈধ আউটপুটগুলির উদাহরণ রয়েছে (কেবল প্রথম পাঁচটির জন্য বৈধ উদাহরণ)। বৈধ উদাহরণগুলি বাম দিকে রয়েছে; ডানদিকে প্রতিটি উদাহরণের সাথে সম্পর্কিত বৈধ উদাহরণের চেয়ে বেশি পরিধি রয়েছে ime

এখানে চিত্র বর্ণনা লিখুন

এই চ্যালেঞ্জটি লেখার ক্ষেত্রে সহায়তার জন্য স্টিভেররিলকে অনেক ধন্যবাদ। শুভ প্যাকিং!


3
হেক্সাগনির জন্য অপেক্ষা করছি, আমি বাজি ধরছি। ; ডি
অ্যাডিসন ক্রম্প

@ ভোটটোক্লোস: আমি মনে করি না যে হেক্সাগনির গ্রাফিকাল আউটপুট রয়েছে, তবে মানুষ, এটি দুর্দান্ত হবে!
এল'েন্ডিয়া স্টারম্যান

@ এল'েন্দিয়া স্টারম্যান ভাল, আপনি স্টডআউটে একটি এসভিজি লিখতে পারতেন , তবে আমি মনে করি না যে আমি যাচ্ছি ...: পি
মার্টিন এন্ডার

1
বাহ, স্যান্ডবক্সে আমার মন্তব্যের জন্য কেউ আমাকে সাহসের সাথে ধন্যবাদ জানায় না। আমি ব্লাশ করছি :- ডি অবশ্যই আমি মন্তব্য করেছি কারণ আমি চ্যালেঞ্জটি পছন্দ করেছি, যদিও আমি নিশ্চিত হতে পারি না যে আমি এর উত্তর দেওয়ার জন্য সময় পাব কিনা।
স্তর নদী সেন্ট

ইউজার ৮১65৫৫ এর উত্তরে রেটো কোড়াদির সাথে আমার আলোচনা অনুসারে, আমি মনে করি ধারালো কোণগুলির সাহায্যে আমরা দেখতে পাব বৃহত্তম হেক্সাগনটি হচ্ছে সাইডাইলেন্থ d ডি (৮ টি বৃত্ত।) এটি এন = ১ 16৯ টি বৃত্ত। আপনি সেই সংখ্যায় সমস্যা সীমাবদ্ধ রাখার বিষয়টি বিবেচনা করতে পারেন, যা সঠিক উত্তর পাওয়ার (এবং বর্তমানে কোনও উত্তর নেই) পাওয়ার সম্ভাবনা এবং চেক করতে সক্ষম হবে more অন্যদিকে সমস্যাটি স্বেচ্ছাসেবী এন এর কাছে ছেড়ে দেওয়া আরও আকর্ষণীয় হতে পারে
লেভেল রিভার সেন্ট

উত্তর:


4

গণিত 295 950 বাইট

দ্রষ্টব্য: এটি এখনও গল্ফযুক্ত সংস্করণটি আমার আগের প্রচেষ্টা সম্পর্কে স্টিভ মেরিলের উত্থাপিত সমস্যাগুলিকে সম্বোধন করে।

এটি প্রথম সংস্করণের তুলনায় উন্নতি হলেও এটি ঘনতম হ্যান্ডেল কনফিগারেশনটি পাবেন না যেখানে ষড়ভুজীয় সামগ্রিক আকারের পরিবর্তে কেউ একটি বিজ্ঞপ্তি চেয়েছিল।

এটি একটি সম্পূর্ণ অভ্যন্তরীণ ষড়ভুজ (এন> = 6 এর জন্য) তৈরি করে সমাধানগুলি সন্ধান করে এবং তারপরে অবশিষ্ট চেনাশোনাগুলির সাথে বাইরের শেলটি সম্পূর্ণ করার জন্য সমস্ত কনফিগারেশন পরীক্ষা করে।

মজার বিষয় হল, স্টিভ মেরিল মন্তব্যগুলিতে যেমন মন্তব্য করেছেন, n+1চেনাশোনাগুলির জন্য সমাধানটি সর্বদা এন চেনাশোনাগুলির জন্য সমাধান যুক্ত করে যাতে অন্য একটি বৃত্ত যুক্ত হয়। 30 টি চেনাশোনাগুলির জন্য প্রদত্ত সমাধানটিকে 31 টি চেনাশোনার জন্য প্রদত্ত সমাধানের সাথে তুলনা করুন। (দ্রষ্টব্য: 30 টি চেনাশোনাগুলির জন্য একটি অনন্য সমাধান রয়েছে))

m[pts_]:={Show[ConvexHullMesh[pts],Graphics[{Point/@pts,Circle[#,1/2]&/@ pts}], 
ImageSize->Tiny,PlotLabel->qRow[{Length[pts],"  circles"}]],
RegionMeasure[RegionBoundary[ConvexHullMesh[pts]]]};
nPoints = ((#+1)^3-#^3)&;pointsAtLevelJ[0] = {{0,0}};
pointsAtLevelJ[j_]:=RotateLeft@DeleteDuplicates@Flatten[Subdivide[#1, #2, j] &@@@
Partition[Append[(w=Table[j{Cos[k Pi/3],Sin[k Pi/3]},{k,0,5}]), 
w[[1]]], 2, 1], 1];nPointsAtLevelJ[j_] := Length[pointsAtLevelJ[j]]
getNPoints[n_] := Module[{level = 0, pts = {}},While[nPoints[level]<=n, 
pts=Join[pointsAtLevelJ[level],pts];level++];Join[Take[pointsAtLevelJ[level],n-Length[pts]],
pts]];ns={1,7,19,37,61,91};getLevel[n_]:=Position[Union@Append[ns,n],n][[1, 1]]-1;
getBaseN[n_] := ns[[getLevel[n]]];pack[1]=Graphics[{Point[{0,0}], Circle[{0, 0}, 1/2]}, 
ImageSize->Tiny];pack[n_]:=Quiet@Module[{base = getNPoints[getBaseN[n]], 
outerRing = pointsAtLevelJ[getLevel[n]], ss},ss=Subsets[outerRing,{n-getBaseN[n]}];
SortBy[m[Join[base,#]]&/@ss,Last][[1]]]

কিছু চেক এন এর একক মূল্যের (প্রতিসমগুলি সহ) এক লক্ষাধিক মামলার তুলনা করে। মোট 34 টি পরীক্ষার কেস চালাতে এটি প্রায় 5 মিনিট সময় নিয়েছিল। বলার অপেক্ষা রাখে না যে বৃহত্তর n'sএই বর্বর শক্তি পদ্ধতির শীঘ্রই অযৌক্তিক প্রমাণিত হবে। আরও দক্ষ পদ্ধতির অস্তিত্ব অবশ্যই নিশ্চিত।

প্রতিটি প্যাকিংয়ের ডান দিকের নম্বরগুলি হ'ল संबंधित নীল উত্তল হলের পরিধি। নীচে জন্য আউটপুট দেওয়া হয় 3 < n < 35। লাল চেনাশোনাগুলি হ'ল নিয়মিত ষড়যন্ত্রের চারপাশে যুক্ত হওয়া।

ডিস্ক



1
যেমন আমি ব্যবহারকারীর 81655 এর উত্তরে উল্লেখ করেছি, 22 (এবং 17, 25, 28, 31, 34) এর প্রসারিত একক বৃত্তটি আরও ভাল বৃত্তের সারির মাঝখানে স্থাপন করা হবে যেখানে এটি বসেছে।
স্তর নদী

আমিও তাই ভেবেছিলাম, কিন্তু তারপরে আমি নোট করেছি যে 9, যা একটি প্রসারিত বৃত্তও সঠিক বলে বিবেচিত হয়েছিল। যখন আমার কিছুটা সময় থাকবে, আমি উত্তল হালগুলির (কেন্দ্রগুলির) পরিমাপগুলি তুলনা করব।
ডেভিডসি

9 এ প্রসারিত বৃত্ত হয় সমতল সারি বরাবর 1/4 বা 3/4 হয়, সুতরাং এটি কোনও পার্থক্য করে না। 17, 22, 25, 28, 31 এ প্রসারিত বৃত্তটি 1/6, 3/6 বা 5/6 বরাবর রয়েছে, সুতরাং মধ্যবর্তী অবস্থানটি আরও ভাল (পাশের স্ট্রিংটি টানানোর বিষয়ে ভাবুন: মাঝখানে থেকে টানা সহজ) কারণ স্ট্রিংটি করার জন্য কম এক্সটেনশন রয়েছে 34 34 (এবং 35) এ আমাদের ফ্ল্যাট পাশের সাথে 1/8, 3/8, 5/8 এবং 7/8 রয়েছে these সুতরাং এর জন্য আমাদের 3/8 এবং 5/8 বেছে নেওয়া উচিত 1/8 এবং 7/8 এর আগে
স্তরের নদী সেন্ট

আপনি একেবারে সঠিক এবং এটি পরিমাপের মাধ্যমে নিশ্চিত করা হয়েছে।
ডেভিডসি

এটা সত্যিই দারুন! 30-> 31 রূপান্তরটি দেখায় যে আমরা কেবল পূর্ববর্তী আকারটি নিতে পারি না এবং বাইরে একটি বৃত্ত যুক্ত করতে পারি না (এটি 16.464 এর পরিধি দেয় given) সেখানে অন্তত একটি ক্ষেত্রে রয়েছে যেখানে আপনি কেবল একটি বৃত্ত যুক্ত করতে পারতেন বাইরে, তবে আলাদা ব্যবস্থা বেছে নিয়েছেন: 12-> 13
স্তর নদী সেন্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.