पर्ल, 86 बाइट्स
$y=1-$_/25,say+map$y**3*($_*=$_/1e3)-($_+$y**2-1)**3>0?$|--?v60:3:$",-40..40for-6..50
के साथ भागो perl -E
।
पहले समीकरण का उपयोग करते हुए, एक भरे हुए ASCII दिल को प्लॉट किया। ध्यान दें कि x- अक्ष ~ 1.265 के कारक से फैला है: यह इस तथ्य का प्रतिकार करने के लिए है कि टर्मिनल फोंट आमतौर पर क्षैतिज रूप से लंबवत रूप से बहुत बड़े होते हैं।
आउटपुट:
3<3<3<3<3<3<3< 3<3<3<3<3<3<3<
3<3<3<3<3<3<3<3<3<3< 3<3<3<3<3<3<3<3<3<3<
3<3<3<3<3<3<3<3<3<3<3<3< 3<3<3<3<3<3<3<3<3<3<3<3<
3<3<3<3<3<3<3<3<3<3<3<3<3<3< 3<3<3<3<3<3<3<3<3<3<3<3<3<3<
3<3<3<3<3<3<3<3<3<3<3<3<3<3<3< 3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<
3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3 <3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<
3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3
<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<
3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3
<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<
3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3
<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<
3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3
<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<
3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3
<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<
3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3
<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<
3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3
<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<
3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3
<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<
3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3
<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<
3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3
<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<
3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3
<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<
3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3
<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<
3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3
<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<
3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3
<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<
3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3
<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<
3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3
<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<
3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3
<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<
3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3
<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<
3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3
<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<
3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3
<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<3<
3<3<3<3<3<3<3<3<3<3<3<3<3<3<3
<3<3<3<3<3<3<3<3<3<3<3<3<
3<3<3<3<3<3<3<3<3<3<3<3
<3<3<3<3<3<3<3<3<3<
3<3<3<3<3<3<3<3
<3<3<3<3<3<
3<3<3<3
<3<3<
3
स्पष्टीकरण (चूंकि ओपी ने इसके लिए कहा था):
condition := $y**3*($_*=$_/1e3)-($_+$y**2-1)**3>0
यह केवल पहला समीकरण है, इसे छोटा करने के लिए थोड़ा पुन: व्यवस्थित किया गया है। $ y सीधे सूत्र में y का प्रतिनिधित्व करता है। $ _ शुरू में x के समानुपाती होता है, लेकिन स्वयं के साथ गुणा किया जाता है ( $_*=$_/1e3
), यह x² के समानुपातिक बनाता है। चूंकि x Since का उपयोग दो बार सूत्र में किया जाता है, इसलिए यह कुछ बाइट्स को बचाता है।
1e3
1000 का मतलब है, और चुना गया था क्योंकि यह छोटा है और परिणाम अच्छा लग रहा है। **
पर्ल का पॉवर ऑपरेटर है। मैं >0
इसके बजाय उपयोग करता हूं ==0
क्योंकि मैं एक भरा दिल चाहता हूं।
flip_flop := $|--?v60:3
v60 ASCII कोड 60: '<' के साथ वर्ण को दर्शाने के लिए पुरातन संस्करण-स्ट्रिंग सिंटैक्स का दुरुपयोग है।
$ | एक जादुई चर है जो केवल कभी 0 या 1. घटाया जा सकता है जब यह पहले से ही 0 पर सेट हो। 1. घटने पर यह स्वाभाविक रूप से 1 के लिए सेट होता है। इस प्रकार, $। - अक्सर एक फ्लिप-फ्लॉप के रूप में उपयोग किया जाता है: हर बार इसका मूल्यांकन किया जाता है, यह सच और झूठ के बीच वैकल्पिक होता है।
समग्र रूप से, यह अभिव्यक्ति वैकल्पिक रूप से '<' और 3 है।
inner_loop := <condition> ? <flip_flop> :$"
नेचर टर्नरी। यदि स्थिति झूठी है (→ हम दिल से बाहर हैं), $ का मूल्यांकन करता है ", जो एक जादुई चर है जो" "(एकल स्थान) में चूक करता है। यदि स्थिति सत्य है (→ हम दिल के अंदर हैं), यह flip_flop का मूल्यांकन करता है।
outer_loop := say+map <inner_loop> ,-40..40
इनर_लूप का बार-बार मूल्यांकन करता है, $ _ (पर्ल के "डिफॉल्ट" वैरिएबल) के साथ -40 से 40 तक जा रहा है, 1. की वृद्धि में। यह एक अस्थायी सूची में उन मूल्यांकन के परिणामों को इकट्ठा करता है, फिर उन सभी को प्रिंट करता है, एक नई रेखा के साथ समाप्त होता है ।
$y=1-$_/25, <outer_loop> for-6..50
यह बाहरी_लूप को बार-बार चलाता है, $ y 1.24 (1 - -6 / 25) से -1 (1 - 50/25) तक जाता है, 0.04 के घटाव में।
ध्यान दें कि y को 25 से विभाजित किया गया है, जबकि x² को 1000 से विभाजित किया गया है, जो कि sqrt (1000) द्वारा विभाजित x के समान है। मेरे द्वारा उल्लिखित ~ 1.265 कारक sqrt (1000) / 25 है।