ত্রিভুজাকার উলাম সর্পিল


21

আমরা একটি ছিল দম্পতি এর চ্যালেঞ্জ ঊলম সর্পিল সম্পর্কে। তবে এটি যথেষ্ট নয়।

এই চ্যালেঞ্জের মধ্যে আমরা একটি ত্রিভুজাকার উলাম সর্পিল (সাধারণ, স্কোয়ার উলম সর্পিলের বিপরীতে) প্লট করব। সর্পিলটি কেমন দেখাচ্ছে তার একটি স্কেচ এখানে।

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

যেমনটি আমরা জানি, উলাম সর্পিল সমস্ত বাহ্যিক সংখ্যাকে একটি বাহ্যিক সর্পিলে সাজিয়ে তোলে এবং কেবল সেইগুলিই চিহ্নিত করে। সুতরাং উপরের স্কেচগুলিতে কেবল কালো (প্রাইমগুলি) প্রদর্শিত নম্বরগুলি প্রদর্শিত হবে।

চ্যালেঞ্জ

একটি নম্বর এনকে ইনপুট হিসাবে গ্রহণ করুন এবং সেই সংখ্যা পর্যন্ত ত্রিভুজাকার উলাম সর্পিল প্রদর্শন করুন।

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

আউটপুট ফর্ম্যাটগুলি

নিম্নলিখিত যে কোনও একটি চয়ন করুন।

  1. প্রাথমিক সংখ্যাগুলিতে মার্কার (বিন্দু, বৃত্ত, ক্রস, আপনি যা পছন্দ করুন) এবং অ-মৌলিক সংখ্যাগুলিতে কিছুই সহ গ্রাফ প্রদর্শন করুন । দুটি অক্ষের জন্য স্কেল একরকম হওয়ার দরকার নেই। এটি হ'ল, উল্লিখিত ত্রিভুজগুলির একতরফা হওয়ার দরকার নেই। অক্ষ, গ্রিড লাইন এবং অক্ষ লেবেলগুলি alচ্ছিক। কেবলমাত্র প্রাথমিক সংখ্যাগুলিতে চিহ্নিতকারীগুলির প্রয়োজন।

    N = 12 এর জন্য উদাহরণের আউটপুট নিম্নরূপ হবে (উপরের স্কেচের সাথে তুলনা করুন)। দ্বিতীয় প্লটটি আরও আকর্ষণীয় উদাহরণ, এন = 10000 এর সাথে সম্পর্কিত।

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

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

  1. উপরের সাথে কোনও সুপরিচিত চিত্রের ফর্ম্যাটে (যেমন পিএনজি, টিফ, বিএমপি) একটি চিত্র ফাইল তৈরি করুন।
  2. প্রাইমগুলির জন্য আপনার পছন্দের একটি একক অক্ষর এবং অ-প্রাইমগুলির জন্য ফাঁকা স্থান, একই সারিতে পৃথক নম্বর অবস্থান পৃথক করার জন্য ফাঁকা স্থান সহ, সর্পিলটি ASCII শিল্প হিসাবে প্রদর্শিত করুন । শীর্ষস্থানীয় বা পিছনের স্থানগুলি বা নতুন লাইনের অনুমতি রয়েছে। উদাহরণস্বরূপ, N = 12 কেস oঅক্ষর হিসাবে ব্যবহার করা হবে

                 o
                · ·
               · o ·
                o · ·
               · o · o
    

    যেখানে অবশ্যই oপ্রাইমগুলিতে কেবল চিহ্নটি প্রদর্শিত হবে। ·অ মৌলিক এখানে শুধুমাত্র রেফারেন্সের জন্য দেখানো হয়।

বিজয়ী মানদণ্ড

আসল পুরষ্কারটি নিজের জন্য দেখছেন সেই আশ্চর্যজনক নিদর্শন কোড গল্ফ, সংক্ষিপ্ততম কোড জয়।


2
ভবিষ্যতে আমি কেবলমাত্র একটি [গ্রাফিকাল আউটপুট] এবং [এসিআই-আর্ট] বেছে নেওয়ার পরামর্শ দিচ্ছি কারণ এটি সাবমিশনগুলিকে তুলনামূলক কম করে তোলে। তবে যাইহোক সুন্দর চ্যালেঞ্জ। :)
অ্যালেক্স এ।

@AlexA। ধন্যবাদ! আমি এটা আমলে নেব। তাহলে ... জুলিয়া উত্তর হবে? ;-)
লুইস মেন্ডো

বাহ, অনুগ্রহের জন্য ধন্যবাদ, তবে আপনার নিজের উত্তরটি গ্রহণ করা উচিত। এটা তোলে হয় সবচেয়ে কম। :)
মার্টিন এেন্ডার

এটি ভাল প্রাপ্য! উত্তর গ্রহণের ক্ষেত্রে, চ্যালেঞ্জের একটি নিয়ম ছিল "আমি নিজের উত্তর স্বীকার করব না"। যখন আমি এই চ্যালেঞ্জটি ভেবেছিলাম তার জটিল সংখ্যা এবং গ্রাফিকাল ফাংশনগুলি নিয়ে আমি অবশ্যম্ভাবী এমএটিএলটি রেখেছিলাম, তাই এটি কিছুটা প্রতারণার মতো ছিল :-)
লুইস মেন্ডো

উত্তর:


13

সিজেম, 49 42 বাইট

Lri{)mp0S?}%{1$,)/(a@Wf%z+\L*}h;eeSff*W%N*

STDIN এ একক পূর্ণসংখ্যা হিসাবে ইনপুট। 0প্রাইমগুলির জন্য একটি ASCII গ্রিড হিসাবে আউটপুট । সর্পিলের ঘূর্ণন সামঞ্জস্যপূর্ণ নয়: সর্পিলের সর্বাধিক সংখ্যা সর্বদা নীচের সারিতে থাকবে।

এটি এখানে পরীক্ষা করুন।

ব্যাখ্যা

প্রাথমিক ধারণাটি গণনা করার সময় ত্রিভুজটিকে একটি র‌্যাগড 2 ডি অ্যারে হিসাবে উপস্থাপন করা। আপনি লাইনগুলি উল্টিয়ে এবং সমস্ত সারি বামদিকে সারিবদ্ধ করে এই অ্যারেটি পান:

   4
  5 3
 6 1 2
7 8 9 A

হিসাবে প্রতিনিধিত্ব করা হবে

[[7 8 9 A]
 [6 1 2]
 [5 3]
 [4]]

যেহেতু আমরা লাইনটি মিরর করেছি তাই আমরা ঘড়ির কাঁটার দিক দিয়ে সর্পিলটি রোল করতে চাই । এটি সুবিধাজনক, কারণ আমাদের যা করতে হবে তা হ'ল ত্রিভুজটি ঘড়ির কাঁটার বিপরীতে ঘোরানো এবং পরবর্তী সাবলিস্টটি যাতে ক্রমযুক্ত করা যায়। আমরা সমস্ত লাইন উল্টিয়ে এবং ট্রান্সপোজ করে র‌্যাগড অ্যারে ঘোরান can

                                                           [[B C D E F]
[[7 8 9 A]         [[A 9 8 7]           [[A 2 3 4]          [A 2 3 4]
 [6 1 2]   reverse  [2 1 6]   transpose  [9 1 5]   prepend  [9 1 5]
 [5 3]      ---->   [3 5]      ------>   [8 6]      ---->   [8 6]
 [4]]               [4]]                 [7]]               [7]]

সুতরাং এখানে কোড। আমি যে বিষয়টিতে দৃষ্টি আকর্ষণ করতে চাই তা হ'ল শেষ বিট যা ত্রিভুজাকার বিন্যাস তৈরি করে। আমি মনে করি এটা বরং নিফটি। :)

L     e# Push an empty array. This will become the spiral.
ri    e# Read input and convert to integer N.
{     e# Map this block over 0 to N-1...
  )   e#   Increment to get 1 to N.
  mp  e#   Test for primality.
  0S? e#   Select 0 or a space correspondingly.
}%
{     e# While the list we just created is not empty yet...
  1$  e#   Copy the spiral so far.
  ,)  e#   Get the number of lines and increment.
  /   e#   Split the list into chunks of that size.
  (a@ e#   Pull off the first chunk, wrap it in an array, pull up the spiral.
  Wf% e#   Reverse the lines of the spiral.
  z   e#   Transpose the spiral.
  +   e#   Prepend the new line.
  \L* e#   Swap with the remaining chunks and join them back together into a single list.
}h
;     e# Discard the empty list that's left on the stack.
ee    e# Enumerate the spiral. This turns each line into a pair of 0-based index
      e# and the line itself.
Sff*  e# Multiply each element of each pair with a space. For the enumeration index i,
      e# this produces a string of i spaces - the required indentation (keeping in
      e# mind that our spiral is still upside down). For the line itself, this
      e# riffles the cells with spaces, creating the required gaps between the cells.
      e# All of this works because we always end the spiral on the bottom edge.
      e# This ensures that the left edge is always complete, so we don't need
      e# different indentation such as in the N=12 example in the challenge.
W%    e# Reverse the lines to make the spiral point upwards.
N*    e# Join the lines with linefeeds.

1
আমি জানতাম আপনি প্রথম হবেন!
লুইস মেন্ডো

@ লুইস মেন্ডো আমি আসলে এটিকে এড়াতে যাচ্ছিলাম, কারণ আমি ভেবেছিলাম গ্রিড সূচকগুলির গণনা ক্লান্তিকর হবে তবে আমি বুঝতে পেরেছিলাম যে লাইনগুলি সংযোজন করার সময় আমি পুরো ত্রিভুজটি ঘোরতে পারি।
মার্টিন এন্ডার

1
আমি সিজেএম প্রোগ্রামগুলির আপনার ব্যাখ্যাটি সবসময় পছন্দ করি কারণ আমি সেগুলি বুঝতে পারি এবং আমি আশ্চর্য হয়েছি যে এই প্রোগ্রামগুলি কতটা জটিল, তবুও সংক্ষিপ্ত হতে পারে।
ইটিএইচ প্রোডাকশনস

10

এমএটিএল , 48 36 বাইট

:1-H*X^.5+Y[2j3/*YP*ZeYsG:Zp)'.'2$XG

বর্তমান প্রকাশ (9.3.0) ব্যবহার করে ।

এটি অনলাইন চেষ্টা করুন! অনলাইন সংকলক কীভাবে গ্রাফিক আউটপুটকে ASCII তে অনুবাদ করতে পরিচালিত করে, তা ধারণা নেই তবে এটি করে এটিঅনলাইন সংকলক দ্বারা সমর্থিতএকটি অক্টোভ বৈশিষ্ট্যটির জন্য একটি আনুমানিক ASCII প্লট তৈরি করে!

সম্পাদনা (এপ্রিল 4, 2016): 13.0.0 প্রকাশের পর থেকে ফাংশনটির Y[নামকরণ করা হয়েছে k। অনলাইন সংকলকটির লিঙ্কটি এই পরিবর্তনটিকে অন্তর্ভুক্ত করে, যাতে কোডটি পরীক্ষা করা যায়।

উদাহরণ

>> matl
 > :1-H*X^.5+Y[2j3/*YP*ZeYsG:Zp)'.'2$XG
 > 
> 20000

গ্রাফিকাল আউটপুট উত্পাদন করে (MATLAB সংস্করণ দেখানো হয়েছে):

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

ব্যাখ্যা

কোডটি সর্পিলের অনুসরণের পথটি সনাক্ত করতে জটিল সংখ্যা ব্যবহার করে। চ্যালেঞ্জের প্রথম চিত্র থেকে দেখা যায়, সর্পিলটির প্রতিটি সোজা পাটি দৈর্ঘ্য 1, 2, 3, 4 ... এবং চক্রাকারে বর্ধমান ওরিয়েন্টেশন 120 ডিগ্রি, 240 ডিগ্রি, 0 ডিগ্রেশন, 120 ডিগ্রাসহ একটি বিভাগ। ..

কোডটি প্রথমে প্রতিটি পূর্ণসংখ্যার সংখ্যা থেকে পরবর্তীটিতে পৃথক জটিল স্থানচ্যুতি তৈরি করে। এই জটিল স্থানচ্যুতিগুলির দৈর্ঘ্য 1 এবং কোণ 2*pi/3, 4*pi/3বা 0(রেডিয়ানে) রয়েছে। সুতরাং এগুলি সহজেই কল্পিত এক্সপেনশনিয়াল হিসাবে উত্পন্ন করা যায়। তার জন্য, পূর্ণসংখ্যার ক্রম 0,1,2,2,3,3,3,4,4,4,4 ... প্রথমে ব্যবহৃত হয়।

এই পূর্ণসংখ্যার ক্রমটি প্রায় "এন প্রদর্শিত হবে এন টাইম" সিক্যুয়েন্সের ( OEIS A002024 ) এর মতো এবং এটি floor(sqrt(2*n)+.5)যেখানে n0,1,2,3, ... হিসাবে পাওয়া যায় । গুন করে 2j*pi/3, jকল্পিত এককটি যেখানে কাঙ্ক্ষিত জটিল স্থানচ্যুতি তৈরি করে।

স্থানচ্যুতিগুলি সর্পিলের মধ্যে পূর্ণসংখ্যার সংখ্যার সাথে সম্পর্কিত অবস্থানগুলি গণনা করতে জমা হয়। সর্পিলের প্রথম পূর্ণসংখ্যার সংখ্যা, যা 1নির্বিচারে 1জটিল প্লেনের অবস্থানে অবস্থিত ।

অবশেষে, অ-মৌলিক সংখ্যার সাথে সম্পর্কিত অবস্থানগুলি বাতিল করা হয়, এবং বাকিগুলি জটিল প্লেনে প্লট করা হয়।

:1-H*X^.5+Y[     % floor(sqrt(2*n)+.5) for n from 0 to N-1, where N is implicit input
2j3/*YP*Ze       % exp(2j*pi/3* ... )
Ys               % cumulative sum. Produces complex positions
G:               % vector 1,2...,N, where N is previous input
Zp               % logical index to select only prime numbers
)                % use that index to keep only complex positions of primes
'.'2$XG          % plot using marker '.'

ওও আমার আরও কী পড়তে হবে
ব্রেইন গাইড

এটি অনলাইন চেষ্টা করে দেখুন! এমএটিএল জন্য গ্রাফিকাল আউটপুট সমর্থন?
অ্যালেক্স এ।

আমি ভেবেছিলাম টিআইও গ্রাফিকাল আউটপুট সমর্থন করে না? যদি এটি হয় তবে আমি সহজেই এমএটিএলকে .pngওয়েব পৃষ্ঠার @ অ্যালেক্সা দ্বারা দেখানোর জন্য কোনও ফাইলটিতে স্বয়ংক্রিয়ভাবে চিত্রগুলি ডাম্প করতে পারি
লুইস মেন্ডো

হে! আমি সাধারণ পরীক্ষাটি করেছি ( plot(1:5)) এবং এটি পাঠ্য-গ্রাফিক আউটপুট উত্পাদন করে !! matl.tryitonline.net/#code=NTpYRw&input= @AlexA। এটা কেমন??
লুইস মেন্ডো

4
ওহো! সেটা খুবই ভালো!
অ্যালেক্স এ।

8

অঙ্কন সঙ্গে করা উচিত

ল্যাটেক্স / পিজিএফ, 527 594 বাইট

\documentclass{standalone}\usepackage{pgf}\let\z\let\z\e\advance\z\f\ifnum\z\h\the\z\a\newcount\a\i\a\j\a\l\a\x\a\y\a\p\a\q\a\n\i=1\l=1\p=-1\q=1\def\m#1{\e\i by1\e\j by1\e\x by\h\p\e\y by\h\q\pgfmathparse{isprime(\h\i)}\f\pgfmathresult=1\pgfpathcircle{\pgfpoint{\h\x cm}{\h\y cm}}3pt\fi\f\j=\l\e\l by1\j=0\f\p=1\p=-1\q=1\else\f\p=-1\p=0\q=-1\else\p=1\q=0\fi\fi\fi\f#1>0\e#1by-1\m#1\fi}\begin{document}\begin{pgfpicture}\pgftransformcm10{cos(60)}{sin(60)}\pgfpointorigin\n=4000\m\n\pgfusepath{fill}\end{pgfpicture}\end{document}

527 বাইট হ'ল উপরের মতো সম্পূর্ণ নথি, যেমন উপস্থাপনা এবং পরামিতি সহ (এখানে 4000, সুতরাং প্যারামিটার ছাড়াই 523 ডলার)। একটি পিডিএফ ফাইল তৈরি করে।

প্রাথমিক ধারণা: ঠিক আছে, আঁকুন। ব্যবহার একটি ম্যাট্রিক্স রূপান্তর একটি ত্রিকোণ গ্রিড জন্য। কেবল সমস্যাটি হ'ল রূপগুলি দ্বারা বিন্দুগুলিও প্রভাবিত হয় (এবং প্রসারিত হয়)। সুতরাং আমি উপবৃত্ত চিহ্নিতকারীদের জন্য নির্বাচন করি :) এর দ্বারা আমি কী বোঝাতে চাইছি তা দ্বিতীয় চিত্রটিতে পরিষ্কার (n = 250, 5pt)।

অন্য একটি সতর্কতামূলক: টেক্সের সর্বাধিক স্ট্যাক আকারের কারণে কেবল 5000 থেকে কিছুটা কম পর্যন্ত পরিচালনা করতে পারে। প্রথম চিত্রটি এন = 4000 এর জন্য। স্পষ্টতই স্ট্যাকের আকার বাড়ানো সম্ভব , আমি চেষ্টা করে দেখিনি।

পিজিএফ ব্যবহার করে isprime()

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

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

Ungolfed:

\documentclass[border=10cm]{standalone}

\usepackage{pgf}

\newcount\ulami
\newcount\ulamj
\newcount\ulamlen

\newcount\ulamx
\newcount\ulamy
\newcount\ulamdx
\newcount\ulamdy

\ulami=1 %
\ulamj=0 %
\ulamlen=1 %
\ulamdx=-1 %
\ulamdy=1 %
\ulamx=0 %
\ulamy=0 %

\def\ulamplot#1{%
  \advance\ulami by 1 %
  \advance\ulamj by 1 %

  \advance\ulamx by \the\ulamdx %
  \advance\ulamy by \the\ulamdy %

  \pgfpathmoveto{\pgfpoint{\the\ulamx cm}{\the\ulamy cm}}

  \pgfmathparse{isprime(\the\ulami)}
  \let\r=\pgfmathresult
  \ifnum\r=1
    \pgfpathcircle{\pgfpoint{\the\ulamx cm}{\the\ulamy cm}}{5pt}
  \fi

  \ifnum\ulamj=\the\ulamlen %
    \advance\ulamlen by 1 %
    \ulamj=0 %
    \ifnum\ulamdx=1 %
      \ulamdx=-1 %
      \ulamdy=1 %
    \else%
      \ifnum\ulamdx=-1 %
        \ulamdx=0 %
        \ulamdy=-1 %
      \else%
        \ulamdx=1 %
        \ulamdy=0 %
      \fi
    \fi
  \fi

  \ifnum#1>0 %
    \advance#1 by -1 %
    \ulamplot{#1}%
  \fi
}

\begin{document}

\begin{pgfpicture}
  \pgfmathsetmacro{\x}{cos(60)}
  \pgfmathsetmacro{\y}{sin(60)}
  \pgftransformcm{1}{0}{\x}{\y}{\pgfpointorigin}

  \pgfpathmoveto{\pgfpointorigin}
  \color{blue}
  \newcount\ulamn
  \ulamn=400
  \ulamplot{\ulamn}
  \pgfusepath{stroke,fill}
\end{pgfpicture}

\end{document}

1
কি দারুন. ল্যাটেক্স
লুইস মেন্ডো

ব্যবহার lualatexঅথবা অন্য কোনো পরিবর্তনশীল বণ্টন কম্পাইলার আপনি স্ট্যাকের আকার বাইপাস যাক উচিত, আমি যদি আপনার সংশ্লিষ্ট মন্তব্য সঠিকভাবে বুঝতে। সুতরাং এটি আপনার উত্তরের সীমাবদ্ধতা নয়, কেবল বেশিরভাগ বাস্তবায়ন যেখানে আপনি এটি চালাবেন of
আন্দ্রেস ডেক

দুঃখিত, আমি পরীক্ষা করে দেখেছি এবং ইনপুট স্ট্যাকের আকার সীমাটি মেমরি বরাদ্দের সাথে সম্পর্কিত নয় যা আমি আমার আগের মন্তব্যে সম্বোধন করেছি :(
আন্দ্রেস ডেক

@ আন্দ্রেসডিক এটি ঠিক আছে, এটি দেখার জন্য ধন্যবাদ। আমি এমন একটি পদ্ধতি পেয়েছি যা স্পষ্টতই স্ট্যাকের আকার বাড়ায়, তবে নিজে চেষ্টা করে দেখিনি (এখনও)।

@ ক্যামিলস্ট্যাপস ধন্যবাদ, আমি অন্যান্য অনুরূপ পোস্টগুলি পেয়েছি, তবে আমি সেগুলিও চেষ্টা করি নি। যাইহোক, আমি ক্যানন হিসাবে খ্রিস্টান ফিয়ারস্যাঙ্গারের পোস্টগুলি গ্রহণ করি :)
আন্দ্রেস ডেক

2

গণিত, 94 বাইট

ListPlot@Accumulate[Join@@Table[ReIm@Exp[2i Pi/3I],{i,2#^.5},{i}]][[Prime@Range@PrimePi@#-1]]&

ফল

%[10000]

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


2

পাইথন, 263 বাইট

পাইথনে নতুন হওয়ার কারণে এখানে অবশ্যই উন্নতির সুযোগ রয়েছে :)

from matplotlib.pyplot import*
from math import*
def f(m):
 s=[];X=[];Y=[];i=x=y=0
 while len(s)<m:i+=1;s+=[i%3*pi*2/3]*i
 for i in range(m):
  x+=cos(s[i]);y+=sin(s[i]);j=i+2
  if all(map(lambda a:j%a>=1,range(2,int(j**.5+1)))):X+=[x];Y+=[y]
 scatter(X,Y);show()

উদাহরণ:

f(100000)

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


আপনি সংক্ষিপ্ত s=[];X=[];Y=[];i=1;x=0;y=0করতে পারেনs=X=Y=[];i=1;x=y=0;
rp.beltran

শেষে অতিরিক্ত সেমিকোলনটি উপেক্ষা করুন। এটি আপনাকে 8 বাইট বাদ দেওয়া উচিত।
rp.beltran

@ rp.beltran। এটা কাজ করে না. আমি মনে করি এটি বিষয়গুলির সাথে একই মান ভাগ করে নেওয়ার সাথে সম্পর্কিত। শুধুমাত্র যোগ করতে পারে x=y=0
ল্যাম্ব্রস্কো অ্যাসিডো

আমার খারাপ, আপনি ঠিক বলেছেন। আমি ভুলে গিয়েছিলাম যে পাইথন রেফারেন্স অনুসারে তালিকা পাস করে। নম্বরগুলি অপরিবর্তনীয় এবং সুতরাং এটি পূর্ণসংখ্যার সাথে করা নিরাপদ।
rp.beltran

1

আর, 137 বাইট

এমনকি প্রাথমিক সংখ্যাগুলির জন্য শুধুমাত্র অন্তর্নির্মিত ফাংশনগুলি ব্যবহার করে। পুনরাবৃত্তির পরিবর্তে এর ভেক্টরাইজড পদ্ধতির দেওয়া, এটি দ্রুত, তবে বিপুল সংখ্যককে পরিচালনা করতে পারে না।

Golfed:

g=function(m){M=1:m;s=rep(M,M)[M]%%3*pi*2/3;k=cumsum;j=sapply(seq(s)+1,function(n)n<4|all(n%%2:n^.5>=1));plot(k(cos(s))[j],k(sin(s))[j])}

Ungolfed:

g=function(m) {
  M = 1:m
  s = rep(M,M)[M] %% 3 * pi * 2/3
  k=cumsum
  j=sapply(seq(s)+1,function(n)n<4|all(n%%2:n^.5>=1)) # primes
  plot(k(cos(s))[j],k(sin(s))[j])    # cumulated coordinates
}

উদাহরণ:

g(10000)

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


আপনি উদাহরণ উদাহরণ যোগ করতে পারেন?
লুইস মেন্ডো

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