একটি ফুলের গ্রাফ ফ্লোরেটস


31

এই ক্যামোমাইল ফুলটি একবার দেখুন:

বেশ, তাই না? ঠিক আছে, আমি যদি আপনাকে বলি যে এটি আসলে একটি ফুল নয়?

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

মূলত, ফুলের মাথায় নবম ফ্লোরেটের অবস্থান (মেরু স্থানাঙ্কে):

যেখানে সি = 1 (দ্রষ্টব্য যে 137.508 ডিগ্রি = সোনার কোণ You আপনাকে এই সঠিক নির্ভুলতা ব্যবহার করতে হবে না))

এর ফলে ফ্লার্মস স্পাইরাল নামে একটি সর্পিলে ফ্লোরেটস গঠিত হয়। ফ্লোরের অবস্থানগুলিও ফিবোনাসির সংখ্যার সাথে সংযুক্ত, তবে এটি অন্য সময়ের জন্য একটি গল্প।

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

একটি আউটপুট কেমন হতে পারে তার একটি নমুনা চিত্র এখানে:


আমাদের কি সর্পিলটি উল্টো দিকে আঁকতে দেওয়া হয়?
lirtosiast

1
FWIW অনেক ফল আনারস, আগাজে এবং পিনকোন এর মতো এই প্যাটার্নটি প্রদর্শন করে। ফুল থেকে ফুলের বিকাশ হওয়ায় এটি আশ্চর্য হওয়া উচিত নয়। মজার বিষয় হল কিছু ক্যাকটাস বডিও এই প্যাটার্নটি প্রদর্শন করে। : আমার প্রিয় ফ্র্যাক্টাল Romanesco ব্রোকলি হয় en.wikipedia.org/wiki/Romanesco_broccoli#/media/...
user151841

1
চমৎকার! আমি এর আগে রোমানেস্কো ব্রোকলি দেখেছি; আমি মনে করি এটি সত্যিই শীতল তাদের কীভাবে এই ফ্র্যাক্টাল প্যাটার্নটি রয়েছে। সম্ভবত আমি সে সম্পর্কে একটি চ্যালেঞ্জ জানাতে পারি ...
একটি স্প্যাগেটো

উত্তর:


21

টিআই-বেসিক, 34 বাইট

TI-83 + / 84 + ক্যালকুলেটরগুলির সিরিজের জন্য।

Input N
2πe^(-2sinh⁻¹(.5→θstep
AnsN→θmax
"√(θ→r₁
Polar                      ;Displays polar mode graphs to graph screen
Dot                        ;Prevents lines from connecting points
DispGraph                  ;Displays graph screen

এটি উত্সের বিন্দুকে 0 র্থ বিন্দু হিসাবে বিবেচনা করে।

ওয়ান-বাইট sinh⁻¹(টোকেনকে ধন্যবাদ , 2πe^(-2sinh⁻¹(.5রেডিয়ানে সোনালী কোণ পাওয়ার একটি ছোট উপায়। এটি e^(sinh⁻¹(.5সোনার অনুপাত থেকে প্রাপ্ত from

এখানে এন = 50 এর স্ক্রিনশট রয়েছে।

(হ্যাঁ, এটি একটি টিআই -৪৪+ + তে একটি 96x64 মনোক্রোম প্রদর্শন The

স্থানাঙ্ক ছাড়া প্রদর্শিত

TRACEপ্রতিটি বিন্দু থেকে পদক্ষেপ নিতে টিপুন ।

স্থানাঙ্ক সহ


5
টিআই-বেসিক পোলার স্থানাঙ্কের জন্য একটি প্রাকৃতিক পছন্দ।
কনর ওব্রায়েন

আপনি কীভাবে বাইট সংখ্যা নির্ধারণ করেছেন? 34 টিরও বেশি দেখে মনে হচ্ছে A প্রি-প্রোগ্রামযুক্ত কীটি sinh⁻¹মনে হচ্ছে (যদি আমি আপনার ব্যাখ্যাটি বুঝতে পারি), এটি একাধিক বাইট হিসাবে গণ্য হবে।
ডেভিডসি

@DavidCarraher TI তৈরি-মৌলিক tokenized ; সব এই টোকেন ক্যালকুলেটর স্মৃতিতে প্রতিটি বাইট এক।
lirtosiast

1
আপনি মেম (২ য় -> +) -> 7 এ গিয়ে কোনও প্রোগ্রামে বাইটের সংখ্যা নির্ধারণ করতে পারেন। তারপরে আপনি আপনার ক্যালকুলেটরটিতে থাকা সমস্ত প্রোগ্রামের একটি তালিকা এবং তারা যে বাইটগুলি গ্রহণ করবেন তা দেখতে পাবেন। নোট করুন যে সমস্ত টিআই-বেসিক প্রোগ্রামগুলিতে 9 বাইট শিরোনাম + নামে বাইট সংখ্যা রয়েছে তাই সঠিক বাইট গণনা পেতে সেগুলি বিয়োগ করতে নিশ্চিত হন।
একটি স্প্যাগেটে

-2 সিংহ error -1-তে সিনট্যাক্স ত্রুটি
ব্যবহারকারীর

15

পাইথন 2, 85 82 81 বাইট

from pylab import*
for i in arange(0,input(),2.39996):polar(i,sqrt(i),'o')
show()

মেরিনাস দ্বারা একটি বাইট দ্বারা সংক্ষিপ্ত।

রেডিয়ানগুলিতে সোনালি কোণ ব্যবহার করা। আমি এর পরিবর্তে 137.508 ব্যবহার করলে বাইট দৈর্ঘ্য সমান, তবে কোনওরকম ভাল দেখাচ্ছে না। পাইব্লব ব্যবহার করে একটি পোলার প্লট তৈরি করে। নীচে যখন 300 (পুরানো সংস্করণের জন্য) ইনপুট হয় এবং 7000 (নতুন সংস্করণের জন্য) ইনপুট হয়। বাইটের সংখ্যা কমে 77 কে কোণে 2.4 পর্যন্ত কোণে পরিণত করতে পারে।

পুরানো সংস্করণ যখন ইনপুট 300 হয়

ইনপুট 7000 হলে নতুন সংস্করণ

এখানে একটি দীর্ঘ সংস্করণ যা গ্রিড এবং অক্ষগুলি সরিয়ে একটি ক্লিনার চেহারা তৈরি করে:

from pylab import *
def florets(n):
    for i in arange(0, n, 2.39996):polar(i, sqrt(i), 'o')
    grid(0)#turn off grid
    xticks([])#turn off angle axis
    yticks([])#turn off radius axis
    show()

বিভিন্ন রঙের কারণ হ'ল প্রতিটি পয়েন্ট পৃথকভাবে প্লট করা হয় এবং এটি তার নিজস্ব ডেটার সেট হিসাবে গণ্য হয়। যদি কোণ এবং রেডিয়ি তালিকা হিসাবে পাস করা হয় তবে তাদের এক সেট হিসাবে বিবেচনা করা হবে এবং এক রঙের হবে।


1
আমি মনে করি এটি এখন পর্যন্ত সবচেয়ে সুন্দর উত্তর। এটি কেন্দ্রের স্পষ্ট সর্পিল নিদর্শনগুলি দেখতে খুব শীতল।
এল'েন্ডিয়া স্টারম্যান

আপনি forতালিকা বোধের পরিবর্তে একটি সাধারণ লুপ ব্যবহার করে একটি বাইট সংরক্ষণ করতে পারেন । এটি নিজস্ব লাইনে থাকতে হবে, ;এবং \nএবং একই দৈর্ঘ্য, যাতে কোনও ব্যাপার না। অর্থ: from pylab import*- for i in arange(0,input(),2.39996):polar(i,sqrt(i),'o')-show()
মেরিনাস

@ মারিনাস তবে তারপরে আর সুপারকুল ওয়ান লাইনার নেই! তবে ধন্যবাদ, আমি এটিকে যুক্ত করে দিয়েছি
স্থিতি

14

ব্লিটজ 2 ডি / 3 ডি , 102 বাইট

(এই সাইটে খুব প্রথমবারের মতো ব্লিটজ 2 ডি / 3 ডি উত্তর!)

Graphics 180,180
Origin 90,90
n=Input()
For i=1To n
t#=i*137.508
r#=Sqr(t)
Plot r*Cos(t),r*Sin(t)
Next

একটি ইনপুট 50উইন্ডো পূরণ করে। (হ্যাঁ, আমি কাজ করে দুটি বাইট ছাঁটাই করতে পারি Graphics 99,99, তবে এটি প্রায় দৃষ্টি আকর্ষণীয় বা দরকারী নয়))

50 ফ্লোরেটস

সুন্দর সংস্করণ (এবং আরও সুন্দরভাবে প্রস্থান করে):

Graphics 400,400
Origin 200,200

n=Input("How many florets? ")

For i = 1 To n
    t# = i * 137.508
    r# = Sqr(t)

    Oval r*Cos(t)-3,r*Sin(t)-3,7,7,1
Next

WaitKey
End

200 ফুলের উদাহরণ


আরে, ঝরঝরে! আমি এটি পড়ার আগে ব্লিটজ সম্পর্কে জানতাম না।
টিমোথী গ্রুট

বাহ, ব্লিটজ 3 ডি প্রায় 15 বছর আগে আমার প্রথম ভাষা ছিল: ডি ... দীর্ঘশ্বাস ..: '(
ননকম

ডিফল্ট হিসাবে ডিগ্রি? "আকর্ষণীয়" ...
lirtosiast

1
@ ননকম: আট বছর আগে আমি এটিই প্রথম ভাষা যা আমি সত্যিই গুরুত্বপূর্ণ প্রোগ্রাম তৈরি করেছিলাম। এটি আজও আমার শীর্ষ দুটি সেরা ভাষার একটি (অন্যটি পাইথন)।
এল'ইনিয়া স্টারম্যান

1
@ অনকম, এটিও আমার প্রথম ভাষা ছিল। আমি এখন পেশাদারভাবে এটি কীভাবে ব্যবহার করব তা ভাবছি।
জেমস ওয়েবস্টার

12

গণিত, 43 42 বাইট

ListPolarPlot@Array[(2.39996#)^{1,.5}&,#]&

এটি একটি নামহীন ফাংশন যা একটি পূর্ণসংখ্যার যুক্তি গ্রহণ করে, যেমন

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

আরও গাণিতিক GoldenAngleফলাফলের জন্য গণিতের প্রকৃতপক্ষে বিল্ট-ইন রয়েছে তবে এটি তার চেয়ে দীর্ঘ 2.39996


GoldenAngle! এটি গাণিতিক 10.2 এ নতুন ফাংশন?
আলেফাল্ফ

@ এলফাল্ফা ইয়েপ
মার্টিন ইন্ডার

11

ম্যাটল্যাব, 42 বাইট

t=2.39996*(1:input(''));polar(t,t.^.5,'.')

ইনপুট নম্বর পান, 1 থেকে শুরু করে সেই সংখ্যাটি তৈরি করে।

রেডিয়ানে সুবর্ণ কোণ দ্বারা পরিসরকে গুণিত করে (ব্যবহৃত মানটি 137.508 ডিগ্রি থেকে 6 এসএফের তুলনায় প্রকৃত মানের নিকটে থাকে)।

তারপরে বিন্দু ব্যবহার করে একটি পোলার স্থানাঙ্ক চার্টে কেবল থিটা বনাম আর প্লট করুন। এখানে 2000 পয়েন্ট সহ দেখানো হয়েছে

মেরূপ্রবণতাযুক্ত

কিছুটা সুন্দর সুন্দর গ্রাফ (কোনও গ্রিড লাইন নেই) এই কোড হবে:

t=2.39996*(1:input(''));[x,y]=pol2cart(t,t.^.5);plot(x,y,'.');axis equal

যদিও এটি 31 বাইট ব্যয়ে। আবার এখানে 2000 পয়েন্ট সহ এটি দেখানো হয়েছে

চক্রান্ত


আমি polarসমাধানটি পছন্দ করি , আমি এটি আগে কখনও ব্যবহার করি নি। আমি মনে করি আপনি t.^.5ইনস্টড ব্যবহার করে দুটি বাইট সংরক্ষণ করতে পারবেন sqrt(t)!
flawr

@ ফ্লোয়ার ধন্যবাদ দুটি বাইট সত্যই সংরক্ষণ করা।
টম কার্পেন্টার

8

আর, 58 55 54 বাইট

x=2.39996*1:scan();plotrix::radial.plot(x^.5,x,rp="s")

এটির জন্য plotrixপ্যাকেজটি ইনস্টল করা দরকার, তবে প্যাকেজটি আমদানি করতে হবে না কারণ আমরা স্পষ্টভাবে নেমস্পেসটি উল্লেখ করছি।

Ungolfed:

# Read a number of STDIN
n <- scan()

x <- 2.39996*(1:n)

# The rp.type = "s" option specifies that we want to plot points rather
# than lines (the default)
plotrix::radial.plot(lengths = sqrt(x), radial.pos = x, rp.type = "s")

এন = 1500 এর উদাহরণ আউটপুট :

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

প্ল্যানাপাসকে ধন্যবাদ 3 বাইট সংরক্ষণ!


8

আর, 55 54 বাইট

t=1:scan()*2.39996;r=t^.5;plot(r*cos(t),r*sin(t),as=1)

এখানে এন = 1000 এর ফলাফল রয়েছে:

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

সম্পাদনা করুন: @ অ্যালেক্সার জন্য ধন্যবাদ আর্গুমেন্টের আংশিক মিল ( asপরিবর্তে asp) ব্যবহার করে 1 বাইট সংরক্ষিত !


6

আর, 48 47 বাইট

আমি মনে করি এটি এখন পর্যন্ত অন্যান্য আর সমাধানগুলির থেকে যথেষ্ট আলাদা। এটি স্থানাঙ্কগুলি তৈরি করতে জটিল ভেক্টর ব্যবহার করে। টি এবং টি এর স্কয়ার্টকে মডিউলাস এবং আর্গুমেন্টের পরামিতিগুলিতে স্থাপন করা হয় এবং এক্স, ওয়াই আসল এবং কাল্পনিক থেকে নিচ্ছে। @ অ্যালেক্সা ধন্যবাদ। বাইট জন্য।

plot(complex(,,,t^.5,t<-1:scan()*2.39996),as=1)

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


1
এটি কেবল আলাদা নয়, এটিও খাটো! +1 টি।
এল'েন্ডিয়া স্টারম্যান

আপনি ফাংশন প্যারামিটারগুলির আংশিক মিল ব্যবহার করে একটি বাইট সংরক্ষণ করতে asপারেন : এর জায়গায় ব্যবহার করা যেতে পারে asp
অ্যালেক্স এ।

@AlexA। ধন্যবাদ অ্যালেক্স, আমি সেগুলি পরীক্ষা করতে ভুলে যাচ্ছি :)
মিকিটি

3

এইচটিএমএল + জাভাস্ক্রিপ্ট 179

<canvas id=C></canvas><script>n=1500,C.width=C.height=400,T=C.getContext('2d');for(n=prompt(M=Math);n--;)r=M.sqrt(t=n*2.4)*9,T.fillRect(M.cos(t)*r+200,M.sin(t)*r+200,2,2)</script>


2

জल्फ, 25 বাইট

yG@@KyoΜzXDyOUH*Hm°yT'.}

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

(এন = 5000 এর জন্য আউটপুট)

এটি অনলাইনে চেষ্টা করুন। (মনে রাখবেন যে ফলস্বরূপ সর্পিল ছোট)

এই চ্যালেঞ্জের পরে জল্ফ তৈরি হওয়ার পরে থেকে প্রতিযোগিতা নেই। ISO-8859-7 এর সাথে এনকোড করা হলে এটি 25 বাইট হয় এবং এতে একটি অপ্রিন্টযোগ্য (এখানে একটি হেক্সডাম্প) থাকে:

0000000: 7947 4096 404b 796f cc7a 5844 794f 5548  yG@.@Kyo.zXDyOUH
0000010: 2a48 6db0 7954 272e 7d                   *Hm.yT'.}

ব্যাখ্যা

yG@@KyoΜzXDyOUH*Hm°yT'.}
yG@@K                      goto (150,75) (center of the canvas)
     yo                    set current location as the origin
       MzX                 map over range 1...input
          D                start of function
           yO              goto polar coordinates ....
             UH            radius: square root of argument
               *Hm°        angle: argument times golden angle
                   yT'.    draw a dot there
                       }

2
ভাল। আমি মনে করি অদ্ভুত এনকোডিং সত্ত্বেও আমাকে এখন জলফের দিকে তাকাতে হবে।
lirtosiast


1

এমএটিএল , 20 বাইট (প্রতিযোগী নয়)

অ-প্রতিযোগী হিসাবে চিহ্নিত হয়েছে কারণ ভাষা চ্যালেঞ্জ পোস্ট করে দেয় post

:2.4*tX^wJ*Ze*'.'&XG

এমএটিএল অনলাইন এ চেষ্টা করুন !

স্বর্ণকোণ , 137.708ডিগ্রি = pi*(3-sqrt(5))রেড = 2.39996...রেডটি রেড হিসাবে প্রায় হয় 2.4

নিম্নলিখিত সংস্করণ ( 25 বাইট ) doubleভাসমান-পয়েন্ট যথার্থতা অবধি সঠিক মানটি ব্যবহার করে :

:YPI5X^-**tX^wJ*Ze*'.'&XG

এমএটিএল অনলাইন এ চেষ্টা করুন !


1

টিসিএল / টাকা, 114

grid [canvas .c]
proc P n {time {incr i
.c cr o [lmap h {cos sin cos sin} {expr sqrt($i*2.4)*$h\($i*2.4)+99}]} $n}

ব্যবহারের উদাহরণ:

P 1024

এবং উইন্ডো আউটপুট

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

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