अन-औसत तापमान!


21

टीएनबी में एक बार सबसे अच्छे तापमान के पैमाने के बारे में चर्चा चल रही थी, और हम कुछ पर सहमत हुए: सभी चार मुख्य तापमान पैमानों का औसत लें! वह है, सेल्सियस , केल्विन , फ़ारेनहाइट , और रैंकिन (सॉरी रेउमुर)।

इसलिए, अब यह मुद्दा है, ज्यादातर लोग इस प्रणाली का उपयोग नहीं करते हैं। तो, मुझे इस औसत से वापस बदलने के लिए एक कार्यक्रम की आवश्यकता है!

चुनौती

सेल्सियस के औसत को देखते हुए, फ़ारेनहाइट, केल्विन, और एक निश्चित तापमान के रैंकिन अभ्यावेदन, किसी भी निर्धारित और सुसंगत क्रम में व्यक्तिगत मानक अभ्यावेदन का उत्पादन करते हैं। यह पता चला है कि यह मेरी व्हाइटबोर्ड गणना के आधार पर संभव है। इनपुट एक एकल फ़्लोटिंग-पॉइंट मान होगा जो भी आपकी भाषा को संभाल सकती है, और आउटपुट किसी भी उचित प्रारूप में चार फ़्लोटिंग-पॉइंट मान होंगे। आप आउटपुट को अपनी भाषा की सीमा में होने के लिए बाध्य करने के लिए इनपुट को प्रतिबंधित कर सकते हैं, लेकिन आपको निरपेक्ष शून्य का समर्थन करने में सक्षम होना चाहिए (इस प्रकार, आपको नकारात्मक संख्याओं को संभालने में सक्षम होने की आवश्यकता है)।

परीक्षण के मामलों

input -> (Celsius, Fahrenheit, Kelvin, Rankine)
100 -> (-70.86071428571424, -95.54928571428565, 202.28928571428574, 364.12071428571437)
20 -> (-128.0035714285714, -198.4064285714286, 145.14642857142857, 261.2635714285714)
-10 -> (-149.43214285714282, -236.97785714285715, 123.71785714285716, 222.69214285714287)
10000 -> (7000.567857142858, 12633.022142857144, 7273.717857142858, 13092.692142857144)

ये मूल्य उरियल के पायथन कार्यक्रम के साथ उत्पन्न हुए थे , और मैंने सत्यापित किया कि वे सही थे।



मुझे लगता है कि पहले तीन परीक्षण मामलों को किसी भी तरह गड़बड़ कर दिया जाता है, फ़ारेनहाइट और केल्विन संख्या में एक ही दशमलव भाग होता है, और इसके विपरीत।
ETHproductions

इसके अलावा पिछले परीक्षण मामले के लिए मैं 13092....बजाय Rankines13091...
बिजनेस बिल्ली

7
-11.99 केल्विन ?!
जोनाथन एलन

2
काल्पनिक रूप से नकारात्मक केल्विन तापमान के साथ कुछ भी गलत नहीं है । वे सिर्फ नियमित तापमान की तुलना में असीम रूप से गर्म हैं । (नोट: मैं भौतिक विज्ञानी नहीं हूं, मैं पूरे दिन केवल Youtube वीडियो देखता हूं और इंटरनेट पर एक होने का नाटक करता हूं)।
ड्रेको

जवाबों:



10

जावास्क्रिप्ट (ईएस 6), 49 बाइट्स

f=
a=>[a=(a-199.205)/1.4,a+=273.15,a*=1.8,a-=459.67]
<input oninput=f(this.value).map(function(x,i){o.rows[i].cells[1].textContent=x})>
<table id=o>
<tr><th>Celsius:</th><td></td></tr>
<tr><th>Kelvin:</th><td></td></tr>
<tr><th>Rankine:</th><td></td></tr>
<tr><th>Fahrenheit:</th><td></td></tr>
</table>


आपने अपने स्निपेट में गलत तरीके से सेल्सियस को
गिराया

2
@numbermaniac बाह, और सारी परेशानी के बाद मैं फ़ारेनहाइट की वर्तनी की दोबारा जाँच करने गया ...
नील

10

पायथन, 63 बाइट्स

def f(a):x=(a+183.205)*5/7;m=x*9/5;return x-273.15,m-459.67,x,m

a औसत है, के रूप में परिणामों की एक वापसी देता है (celsius, fahrenheit, kelvin, rankine)

गणित में शामिल:

kelvin = x
celsius = x - 273.15
fahrenheit = x * 9/5 - 459.67
rankine = x * 9/5

a = (x + x - 273.15 + x * 9/5 - 459.67 + x * 9/5) / 4 = x * 7/5 - 183.205
x = (a + 183.205) * 5/7

3

दिल्लोग एपीएल, 46 40 बाइट्स

6 बाइट्स @ Adám की बदौलत बच गए

273.15 459.67 0 0-⍨4⍴63 35÷⍨45×183.205+⊢

इसे ऑनलाइन आज़माएं!

अनाम मोनाद, Dyalog क्लासिक वर्ण सेट का उपयोग करता है।


नहीं, यह Dyalog Classic वर्ण सेट का उपयोग करता है, क्योंकि यह केवल Dyalog APL पर काम करेगा।
आदम

छह बाइट्स बचाएं:273.15 459.67 0 0-⍨4⍴63 35÷⍨45×183.205+⊢
Adám

@ Adám धन्यवाद! अगर मैं केवल पूछ सकता हूं, तो यह अन्य एपीएल पर काम क्यों नहीं करेगा?
उरियल

क्योंकि केवल Dyalog दोनों है {dfns}, और एकल-बाइट एन्कोडिंग। GNU APL में dfns है, लेकिन UTF-8 का उपयोग करता है और उसके पास नहीं है , जबकि APL2 (जो आपके द्वारा जुड़ा कोडपेज था) में न तो dfns है और न ही
Adám

अब जब आप टैसिट ट्रेन का उपयोग कर रहे हैं, तो यह निश्चित रूप से द्यलोग एपीएल है, क्योंकि यह द्यलोग एपीएल (और जे) के लिए अद्वितीय है।
Adám

2

PHP, 62 बाइट्स

ऑर्डर केल्विन, सेल्सियस, रैंकिन, फारेनहाइट

print_r([$t=($argn+183.205)/1.4,$t-273.15,$t*=1.8,$t-459.67]);

ऑनलाइन संस्करण

PHP, 64 बाइट्स

ऑर्डर केल्विन, रैंकिन, फ़ारेनहाइट, सेल्सियस

print_r([$k=($argn+183.205)/1.4,$r=1.8*$k,$r-459.67,$k-273.15]);

ऑनलाइन संस्करण


2

डीसी, 37 38 बाइट्स

[संपादित करें 1: नील की टिप्पणी के अनुसार तीसरा रूप जोड़ा गया]

ये [पहले दो] दोनों एक ही लंबाई के हैं :( पहला फारेनहाइट, सेल्सियस, केल्विन, रैंकिन (ढेर पर नीचे से ऊपर) का उत्पादन करता है, और दूसरा फारेनहाइट, रैंकिन, सेल्सियस, केल्विन का उत्पादन करता है।

9k?183.205+1.4/d1.8*rd273.15-d1.8*32+f
9k?183.205+1.4/d273.15-rd1.8*d459.67-f
9k?199.205-1.4/d273.15+d1.8*d459.67-f

उदाहरण आउटपुट ( dcइनपुट पर नकारात्मक संख्याओं को इंगित करने के लिए _ का उपयोग करता है): [पहले दो रूपों से; तीसरे फ़ॉर्म के लिए नीचे संपादित देखें।]

20
-198.406428572
-128.003571429
145.146428571
261.263571427

20
-198.406428573
261.263571427
145.146428571
-128.003571429

_10
-236.977857144
-149.432142858
123.717857142
222.692142855

_10
-236.977857145
222.692142855
123.717857142
-149.432142858

यह काम किस प्रकार करता है

9k?183.205+1.4/d1.8*rd273.15-d1.8*32+f

9k9-स्थान अंकगणित सेट करता है।
?स्टड से इनपुट पढ़ता है, इसे स्टैक (टीओएस) के शीर्ष पर छोड़ देता है। डिग्री केल्विन देते हुए १
183.205+adds३.२०५ को
1.4/१.४ या ,/ ५ से टीओएस विभाजित करता है।
dटीओएस नकल करता है। (यानी, डिग्री केल्विन को डुप्लिकेट
1.8*rकरता है ) केल्विन से रैंकिन की गणना करता है, फिर स्टैक के शीर्ष दो को उलट देता है।
d273.15-तापमान को प्राप्त करने के लिए TOS और 273.15 को घटाता है।
d1.8*32+TOS, डुप्लिकेट को 9/5 से गुणा करता है और फारेनहाइट के लिए 32 जोड़ता है।
fस्टैक की सामग्री प्रिंट करता है।


1 संपादित करें, जारी रखें:

9k?199.205-1.4/d273.15+d1.8*d459.67-f

नील द्वारा सुझाया गया यह रूप, केल्विन के बजाय सेल्सियस की गणना द्वारा शुरू होता है। यह rकेल्विन से रैंकिन की गणना करते समय एक (ए ) को घुमाता है ।

यह सेल्सियस = (औसत - 199.205) * 5/7 के माध्यम से गणना करता है 199.205-1.4/, केल्विन प्राप्त करने के लिए 273.15 जोड़ता है, रैंकिन प्राप्त करने के लिए 1.8 से गुणा करता है, और फारेनहाइट प्राप्त करने के लिए 459.67 घटाता है। उदाहरण के लिए:

20
-198.406428571
261.263571429
145.146428572
-128.003571428

9k?199.205-1.4/d273.15+d1.8*d459.67-fआउटपुट ऑर्डर को बदलकर 1 बाइट बचाता है।
नील

@ नील, धन्यवाद! उत्तर में संपादित किया गया।
जेम्स वाल्डबी - jwpat7


0

पायथन 3, 67 बाइट्स

c=(5*float(input())-996.025)/7;t=[c,c*1.8+32,c+273.15,c*1.8+491.67]

यह कोड सेल्युकस में तापमान प्राप्त करने के लिए कुछ बीजगणित करता है, फिर मैं इसे अन्य तापमान इकाइयों में परिवर्तित करता हूं। तापमान सूची में संग्रहीत किया जाता है t


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.