জীবনের গল্ফ ফুল


19

এখানে চ্যালেঞ্জটি হ'ল আপনার পছন্দের ভাষায় জীবনের ফুলকে (যা কারও মতে একটি পবিত্র জ্যামিতিক চিত্র) সঠিকভাবে চিত্রিত করা।

জীবনের ফুল

নকশায় 1 টি ব্যাসার্ধের বৃত্ত এবং আংশিক বৃত্তের ব্যবস্থা রয়েছে যেমনটি দেখানো হয়েছে যার কেন্দ্রগুলি পিচ 1 এর ত্রিভুজাকার গ্রিডের সাথে আরও প্রায় 3 টি ব্যাসার্ধের বৃহত একটি বৃত্তে সাজানো হয়েছিল।

আপনার পছন্দ মতো নকশাটি ছোট করে দেওয়া যেতে পারে তবে গাণিতিকভাবে সঠিক থেকে সর্বোচ্চ 2% ত্রুটি অনুমোদিত। রাস্টার গ্রাফিক্স ব্যবহার করে, এটি কার্যকরভাবে ছোট চেনাশোনাগুলির ব্যাসকে কমপক্ষে 100 পিক্সেলের মধ্যে সীমাবদ্ধ করে।

যেহেতু এটি কোড-গল্ফ, তাই সংক্ষিপ্ততম কোড (বাইট) জয়।


10
সাইটে স্বাগতম! ঠিক তেমনই আপনি জানেন, উত্তর গ্রহণের আগে কিছুক্ষণ অপেক্ষা করতে উত্সাহিত করা হয়, অন্য ব্যবহারকারীরা এইভাবে প্রতিযোগিতাটিকে "ওভার" হিসাবে দেখবেন না এবং আরও অংশগ্রহণ এবং প্রতিযোগিতা থাকবে।
ডিজেএমসিএমহেম

2
"ভিজ্যুয়াল, সনাক্তযোগ্য এবং সঠিক" কোনওটিই পরিষ্কার বা উদ্দেশ্যমূলক নয়। বস্তুনিষ্ঠ বৈধতার মানদণ্ড ব্যতীত কোনও জমা বৈধ কিনা তা নির্ধারণ করা অসম্ভব। আমরা স্যান্ডবক্সকে মূল সাইটে পোস্ট করার আগে কোনও চ্যালেঞ্জ সহ কোনও সম্ভাব্য সমস্যা সমাধানের জন্য উত্সাহিত করি ।
মেগো

"সনাক্তযোগ্য" এর মতো বিমূর্ত বিধি ছাড়াও, সর্বনিম্ন আকার নির্দিষ্ট করা ভাল।
manatwork

যেহেতু কেউ এটিকে এখনও প্লাগ করেনি, তাই মেটাতে আমাদের একটি স্যান্ডবক্স রয়েছে যা নতুন চ্যালেঞ্জগুলির প্রতিক্রিয়া জানাতে সহায়তা করার জন্য ডিজাইন করা হয়েছে। আপনি এটি এখানে খুঁজে পেতে পারেন: meta.codegolf.stackexchange.com/questions/2140/…
tuskiomi

1
এটি আসলে কেবল 19 টি চেনাশোনা নয়। পাশাপাশি প্রান্তগুলিতে কিছু বিজ্ঞপ্তিযুক্ত আর্ক রয়েছে। (তাদের মধ্যে 6 টি 2π / 3, 12 টি আচ্ছাদন angle, 18 আচ্ছাদন π / 6 এর আচ্ছাদনকে coveringেকে দেয়)
মার্টিন এন্ডার

উত্তর:


23

গণিত, 177 173 128 124 120 বাইট

c=Circle;Graphics@{{0,0}~c~3,Rotate[Table[If[-3<x-y<4,c[{√3x,-x+2y}/2,1,Pi/{6,2}]],{x,-3,2},{y,-4,2}],Pi/3#]&~Array~6}

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

মূল ধারণাটি এর ছয়টি ঘোরানো সংস্করণ থেকে ফলাফল রচনা করা:

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

এটি পরিবর্তে দুটি কোণ বন্ধ করে দিয়ে অভিন্ন বৃত্ত আরকগুলির একটি আয়তক্ষেত্রাকার টেবিল। আমরা যদি লোম ছাঁটাই এবং প্রতিটি বৃত্ত কেন্দ্রকে একটি দিয়ে উপস্থাপন #করি, তবে আমরা মূলত এই প্যাটার্নে চেনাশোনাগুলি বিতরণ করতে চাই:

####
#####
######
######
 #####
  ####

এই প্রান্তগুলি -3 < x-y < 42 ডি সূচকগুলিতে শর্ত আরোপ করে কেটে ফেলা হয় (যেহেতু এর মানটি x-yতির্যকের সাথে ধ্রুবক হয়) এবং শিয়ারিং এগুলি বৃদ্ধি করে xএবং yঅ-অর্থোগোনাল ভিত্তিক ভেক্টরগুলির দ্বারা আসে যা আমরা খুঁজছি গ্রিডটি প্রসারিত করে ।

আরোটেড আরাক্সের এই নির্দিষ্ট দিকটি সবচেয়ে কম হয়ে গেছে যেহেতু চাপের উভয় প্রান্তকে সমানভাবে বিভক্ত করা হয়েছে Piযাতে চাপটি হিসাবে প্রকাশ করা যেতে পারে Pi/{6,2}(অন্যান্য সমস্ত আরাকের প্রয়োজন হয় এবং অতিরিক্ত বিয়োগ চিহ্ন বা সংখ্যাতে পূর্ণসংখ্যার প্রয়োজন হবে)।


সংখ্যাগত ত্রুটির উত্সকে অপসারণ করার সময় 2 টি অক্ষর এবং 0 বাইট সংরক্ষণ করতে √3 ব্যবহার করুন।
কেলি লোডার

@ কেলিলাউডার ভাল পয়েন্ট, স্থির।
মার্টিন ইন্ডার

8

ওপেনস্ক্যাড, 228 বাইট

$fn=99;module o(a=9){difference(){circle(a);circle(a-1);}}function x(n)=9*[sin(n*60),cos(n*60)];module q(g){for(i=[1:6])if(g>0){translate(x(i))union(){o();q(g-1);}}else{intersection(){translate(x(i))o();circle(9);}}}q(2);o(27);

নীচে একটি সংস্করণ দেওয়া হয়েছে যাতে কেউ প্যারামিটার r (ব্যাসার্ধ) এবং ডাব্লু (রিংগুলির প্রস্থ) নির্ধারণ করতে পারে।

r=1;w=.1;$fn=99;module o(n){difference(){circle(n);circle(n-w);}}function x(n)=(r-w/2)*[sin(n*60),cos(n*60)];module q(g){for(i=[1:6])if(g>0){translate(x(i))union(){o(r);q(g-1);}}else{intersection(){translate(x(i))o(r);circle(r);}}}q(2);o(3*r-w);

এই সংস্করণটি সঠিকভাবে 246 টি অক্ষর।
এই কোডটির কিছুটি প্রযুক্তিগতভাবে অপ্রয়োজনীয় তবে এটিকে ছবির মতো দেখায়।


আমি এই ত্রুটিটি Error: Error: Parse error on line 1: ...x(k))o();circle(9);};}}}q(2);o(27); -----------------------^ Expecting 'TOK_ID', '}', 'TOK_IF', '!', '#', '%', '*', got ';'
ওপেনস্ক্যাড.নেট

@AlexL। আমি যখন আমার ম্যাকের আসল ওপেনস্ক্যাড ক্লায়েন্টটি ব্যবহার করি তখন আমি সেই ত্রুটিটি পাচ্ছি না। তবে আমি ক্রোম ব্যবহার করে ওপেনসিএসিডনেটকে সেই ত্রুটিটি প্রতিরূপ করতে সক্ষম হয়েছি যা হতাশাব্যঞ্জক। এটি তাদের পরিষেবাতে এটি একটি সমস্যা বলে মনে করে। আপনি কি ডেস্কটপ অ্যাপ্লিকেশন চেষ্টা করতে পারেন?
হেনরি ওয়াইল্ডর্মথ

1
ডেস্কটপ সংস্করণে আমার জন্য কাজ করেছেন (উবুন্টু 14.04 এলটিএস)।
বেনিয়ামিন স্পেক্টর

1
আমি আপনার কোডটিতে pattern; pattern প্যাটার্নটি লক্ষ্য করেছি। আমি মনে করি আপনি এটি নিরাপদে replace replace এর সাথে প্রতিস্থাপন করতে পারবেন যা উভয় সংস্করণের জন্য একটি অক্ষর শেভ করবে। এটি নিজেই পরীক্ষা করে দেখে মনে হয়েছিল কাজ করে যাচ্ছি।
বেনিয়ামিন স্পেক্টর

6

গণিত 263 বাইট

@ মার্টিনইনারের জমা দেওয়ার সাথে সত্যই প্রতিযোগিতামূলক নয় তবে তবুও আমি এই নিয়ে মজা করেছি। পাপড়ি গুলো এলোমেলোভাবে চলতে দিলাম! পাপড়ি 60০ ডিগ্রি এলোমেলোভাবে শেষের পয়েন্টগুলির মধ্যে একটি সম্পর্কে ঘোরাফেরা করে যা এলোমেলোভাবে বেছে নেওয়া হয়। পাখির ঘূর্ণায়মান প্রান্তটি বড় ডিস্কের বাইরে পড়ে কিনা তা পরীক্ষা করে দেখি এবং যদি তা হয় তবে আবর্তনটি অন্যভাবে চলে।

c=Circle;a=√3;v={e=0{,},{0,2}};f=RandomChoice;Graphics@{e~c~6,Table[q=f@{1,2};t=f@{p=Pi/3,-p};r=RotationTransform[#,v[[q]]]&;v=r[If[r[t]@v[[-q]]∈e~Disk~6,t,-t]]@v;Translate[Rotate[{c[{1,a},2,p{4,5}],c[{1,-a},2,p{1,2}]},ArcTan@@(#-#2)&@@v,e],v[[2]]],{5^5}]}

অ্যানিমেশনটির জন্য আমি পরবর্তী কোডটি ব্যবহার করেছি।

Export[NotebookDirectory[]<>"flower.gif", Table[Graphics[Join[{c[e,6]},(List@@%)[[1,2,1;;n-1]],{Thick,Red,(List@@%)[[1,2,n]]}]],{n,1,3^4,1}]]

র্যান্ডম পেটাল হাঁটা

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


এটি সত্যিই দুর্দান্ত ধারণা, তবে একটি সীমাবদ্ধ পুনরাবৃত্তির সাথে পুরো ফুলটি না পূরণের শূন্যতার সম্ভাবনাও রয়েছে। একবার আপনি 30 টি পাপড়ি আঁকলে আপনার সম্ভবত একটি সমাপ্তির শর্ত যুক্ত করা উচিত (এটি আসলে আপনি সম্পন্ন করেছেন কিনা তা নির্ধারণের সবচেয়ে ছোট পদ্ধতির মতো মনে হয়)। তারপরে আপনি জানতে পারবেন অঙ্কনটি শেষ করার সময় অঙ্কনটি সম্পন্ন হয়েছে এবং শেষ না হওয়ার সম্ভাবনা শূন্য হবে।
মার্টিন ইন্ডার

স্বতন্ত্রভাবে এটির অনেকগুলি বাইট রয়েছে যা আপনি সংরক্ষণ করতে পারেন: Sqrt[3]তা 3^.5eএটির প্রথম ব্যবহার হওয়া পর্যন্ত আপনাকে সংজ্ঞায়িত করার দরকার নেই এবং আপনি এই কৌশলটি একটি বাইট সংরক্ষণ করতে ব্যবহার করতে পারেন , তাই v={e=0{,},{0,2}}। আপনি পছন্দ করতে কিছু পোতা স্বরলিপি ব্যবহার করতে পারেন e~c~6বা e~Disk~6, এবং ArcTan@@Subtract@@vসমতুল্য হওয়া উচিত ArcTan@@(#-#2)&@@v
মার্টিন ইন্ডার

15 বাইট ছাঁটাই করতে ইনফিক্স এবং √ অপারেটরটি ব্যবহৃত হয়। @ মার্টিনএেন্ডার টিপসটির জন্য ধন্যবাদ। / 2 এবং 2 * এর থেকে মুক্তি পেয়েছে যা বাতিল হয়েছে। 180 টি পাপড়ি রয়েছে তাই 4 ^ 4 পুনরাবৃত্তি সাধারণত অর্ধেক ডিস্ক জুড়ে থাকে এবং 5 ^ 5 কাজ করে। 9 covering 9 ডিস্কটি coveringেকে না রাখার সম্ভাবনা 10 ^ 400,000 এর মধ্যে 1 ডলার যা 2% ত্রুটির চেয়ে অনেক কম, তাই নষ্ট বাইটগুলি যাচাইয়ের পক্ষে মূল্য নয়।
কেলি লোডার

3

জাভাস্ক্রিপ্ট (ES6) / এসভিজি, 299 বাইট

with(document){write(`<svg height=250 width=250><circle${b=` fill=none stroke=black `}cx=125 cy=125 r=120 />`);for(i=0;i<24;i++)write(`<path${b}d=M5,125${`${a=`a60,60,0,0,1,`}40,0`.repeat(i%4+3)+`${a}-40,0`.repeat(i%4+3)} transform=${`rotate(60,125,125)`.repeat(i>>2)}rotate(-60,${i%4*4}5,125) />`)}

বিভিন্ন দৈর্ঘ্যের একাধিক তোরণ জোড়া তৈরি করে তারপরে সেটিকে আবর্তিত করে কাজ করে।

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