আন-গড় তাপমাত্রা!


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)

এই মানগুলি ইউরিলের পাইথন প্রোগ্রামের সাহায্যে উত্পন্ন হয়েছিল এবং আমি যাচাই করেছি যে সেগুলি সঠিক।



আমি মনে করি প্রথম তিনটি পরীক্ষার কেস কোনও না কোনওভাবে গোলমেলে, ফারেনহাইট এবং কেলভিন সংখ্যার দশমিক অংশ একই, এবং তদ্বিপরীত।
ইটিএইচ প্রডাকশনগুলি 24:57

এছাড়াও সর্বশেষ পরীক্ষার ক্ষেত্রে আমি 13092....রঙ্কাইনগুলি পরিবর্তে পেয়েছি13091...
বিজনেস ক্যাট

7
-11.99 কেলভিন ?!
জোনাথন অ্যালান

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

উত্তর:


4

পাইথ , 40 37 36 বাইট

-বিজে + সি 36641 280c * 5Q7 273.15-বি * জে 1.8 
459.67 -বিজেসি + 916.025 * 5 কিউ 273.15-বি * জে 1.8 459.67
-বিজেসি + 916.025 * 5Q7 273.15-বি * 1.8J459.67

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

চশমা

  • ইনপুট: 100
  • আউটপুট: [Kelvin, Celcius]\n[Rankine, Fahrenheit]

ম্যাথ

kelvin = (average*5+916.025)/7

10

জাভাস্ক্রিপ্ট (ES6), 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
@ সংখ্যামারিয়াক বাহ, এবং সমস্ত সমস্যার পরে আমি ফারেনহাইটের বানানও ডাবল-চেক করতে গিয়েছিলাম ...
নীল

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 গড়, ফলাফল হিসাবে একটি tuple প্রদান (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 বাইট

Á বাইট সংরক্ষিত হয়েছে @ অ্যাডমকে ধন্যবাদ

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

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

বেনামে মোনাড, ডায়ালগ ক্লাসিক চরিত্র সেটটি ব্যবহার করে।


না, এটি ডায়ালগ ক্লাসিক চরিত্র সেটটি ব্যবহার করে, যেহেতু এটি কেবল ডায়ালগ এপিএলে কাজ করবে।
অ্যাডম

ছয়টি বাইট সংরক্ষণ করুন:273.15 459.67 0 0-⍨4⍴63 35÷⍨45×183.205+⊢
অ্যাডম

@ আদম ধন্যবাদ! যদি আমি কেবল জিজ্ঞাসা করতে পারি, এটি কেন অন্যান্য এপিএলগুলিতে কাজ করবে না?
ঊরীয়েল

কারণ শুধুমাত্র Dyalog উভয় হয়েছে {dfns}, এবং একক বাইট এনকোডিং। জিএনইউ এপিএল এর ডিফএন রয়েছে, তবে ইউটিএফ -8 ব্যবহার করে এবং এর কোনও নেই , যখন এপিএল 2 (যা আপনার সাথে সংযুক্ত কোডড ছিল) কোনও ডিফএন নেই বা নেই
অ্যাডম

এখন আপনি যেহেতু ট্র্যাসিট ট্রেন ব্যবহার করছেন, এটি অবশ্যই ডায়ালগ এপিএল, কারণ এটি ডায়ালগ এপিএল (এবং জে) এর পক্ষে অনন্য।
Adám

2

পিএইচপি, 62 বাইট

অর্ডার কেলভিন, সেলসিয়াস, র্যাঙ্কাইন, ফারেনহাইট

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

অনলাইন সংস্করণ

পিএইচপি, 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+টিওএসে 183.205 যোগ করে টিওএসকে
1.4/1.4 বা 7/5 দ্বারা ভাগ করে, ডিগ্রি কেলভিন দেয়।
dনকল টিওএস (অর্থাত্ ডিগ্রি কেলভিনকে নকল করে)
1.8*rরেলকাইন কে কেলভিন থেকে গণনা করে, তারপরে স্ট্যাকের শীর্ষ দুটিকে বিপরীত করে।
d273.15-টিওএস সদৃশ এবং ডিগ্রি সেলসিয়াস পেতে 273.15 বিয়োগ করে।
d1.8*32+টিএসএসের সদৃশ, 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


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