রেফারেন্স কোণটি সন্ধান করুন


17

এটি মোটামুটি সহজ প্রশ্ন। এই র্যান্ডম ওয়েবসাইটটি অনুসারে আমি পেয়েছি - ওয়েব সংরক্ষণাগার , একটি রেফারেন্স এঙ্গেল হ'ল the acute angle formed by the terminal side of the given angle and the x-axis.এগুলি সন্ধানের জন্য আপনাকে একটি প্রোগ্রাম লিখতে হবে।

বীজগণিত 2 থেকে কিছুই মনে নেই, এর অর্থ কী?

কোণগুলি সাধারণত স্ট্যান্ডার্ড আকারে দেওয়া হয় , যা কোণের একপাশে রেখে অন্যদিকে পরিমাপ করে, ঘড়ির কাঁটার বিপরীতে, যেমন:

মানস্মমত ফর্ম

এটি আপনার ইনপুট হবে। আপনার আউটপুট এটির রেফারেন্স কোণ হবে। আপনি এটিকে মূলত টার্মিনাল দিক থেকে এক্স-অক্ষের সাথে সবচেয়ে ছোট দূরত্ব হিসাবে ভাবতে পারেন। এটি একটি কোণ ছাড়া, কোনও দূরত্ব নয়। এখানে কিছু উদাহরন:

কোয়াড 2 রেফ কোয়াড 1 রেফ

কোয়াড 3 রেফ কোয়াড 4 রেফ

ব্যাখ্যা

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

আর একটি সহায়ক লিঙ্ক

পরীক্ষার মামলা

70      ->  70 deg
135     ->  45 deg
210     ->  30 deg
-60     ->  60 deg
91      ->  89 deg
610     ->  70 deg
-1000   ->  80 deg

1
90 এর ইনপুটটিতে আমরা কী করব?
লিটারোসিয়াসট

2
@ থমাসকওয়া এটি উভয় দিক থেকেই 90 হবে।
মালটিসেন

1
একটি সংক্ষিপ্ত সমাধান হ'ল abs(arcsin(sin(input)))+" deg"যদিও আমি জানিনা কোন ভাষাটি জিতবে (এটির জন্য ডিগ্রি এবং স্ট্রিং অপারেশনগুলি সমর্থন করা দরকার)।
lirtosiast

ইনপুটটি কি সর্বদা পূর্ণসংখ্যা হয়?
lirtosiast

6
যেহেতু অ-সংখ্যার কোণগুলি অনুমোদিত, তাই আপনার পরীক্ষার ক্ষেত্রে একটি অন্তর্ভুক্ত করা উচিত।
ডেনিস

উত্তর:



6

পাইথ, 18 বাইট

+.a-%+QK90yKK" deg

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


আপনার অ্যালগো ব্যবহার করে এটি 19 এ নেমেছে তবে ইনলাইন অ্যাসাইনমেন্ট সহ, বিনা দ্বিধায় ব্যবহার করুন: pyth.herokuapp.com/…
মালটিসেন

@ মাল্টেসেন: ধন্যবাদ, আরও একটি উন্নতি পেয়েছি
গ্রাভস এনএল

5

পাইথন 2, 34 বাইট

lambda x:`90-abs(x%180-90)`+' deg'

"%d deg"স্ট্রিং ফর্ম্যাটিং ব্যবহার করা বেশি প্রয়োজন কারণ প্রয়োজনীয় বন্ধনীগুলির কারণে।



4

ডিসি, 25

90?90+d*v180%-d*vn[ deg]p

নোটটি পরিবর্তে-সাইন চিহ্ন হিসাবে dcব্যবহার করে ।_-

পরীক্ষার আউটপুট:

$ for test in 70 135 210 _60 91 610 _1000; do dc -e'90?90+d*v180%-d*vn[ deg]p' <<< $test ; done
70 deg
45 deg
30 deg
60 deg
89 deg
70 deg
80 deg
$

3

গণিত, 22 31

ToString@Abs@Mod[#,180,-90]deg&

1
@ LegionMammal978 যদি আমি শুধু সংখ্যাবৃদ্ধি এটি দ্বারা deg, 0 degপরিণত হবে 0
আলেফাল্ফ

1
যেহেতু আপনি আউটপুট টাইপের বিষয়ে চিন্তা করেন না তাই আপনি এইভাবে 2 বাইট সংরক্ষণ করতে পারেন:Row@{Abs@Mod[#,180,-90],deg}&
লেজিওনম্যামাল 978

3

পাইথন 2, 35

lambda x:`min(x%180,-x%180)`+' deg'

কোণ এবং এর নেতিবাচক মডুলোর ছোট 180। কার্যকরভাবে কোণটি 0 থেকে 180 এর পরিসরে রূপান্তর করে এবং দূরত্বটি শেষের পয়েন্টগুলির কাছাকাছি নিয়ে যায়। যে -x%180গ্রুপ হিসাবে নোট করুন (-x)%180

পাইথন 3 এর জন্য স্ট্রিং ফর্ম্যাটিং সহ একই দৈর্ঘ্য:

lambda x:'%d deg'%min(x%180,-x%180)

3

Pyth 25 30 বাইট

বেদনাদায়কভাবে অবাস্তব সমাধান, ট্রিগ ফাংশন ব্যবহার করে। মাহবুব

+.R.t.a.t.t.tQ7Z3 6?%Q1Q0" deg

কোন পরামর্শ স্বাগত জানাই।


1
.tকলগুলি নেওয়ার পরে এটিকে একটি ভাঁজ করে 28 এ +.R.t.a.tF[Q7Z3)6?%Q1Q0" deg
নামিয়েছেন

ঝরঝরে। আমি লক্ষ্য করেছি যে এটি কোনও ভাসমান পয়েন্ট ইনপুট নিয়ে কাজ করছে না: 90.5 => 90.0 degযদিও।
উইনি

এটি কারণ আপনার হয় না: pyth.herokuapp.com/…
মাল্টেসেন

আকর্ষণীয় ধরা। ইনপুট সহ -60.5 => 60.5 degকিন্তু সাথে 60.5 => 60.0 degপাইথের
উইনি

1

জাভাস্ক্রিপ্ট (ES6), 43 বাইট

স্পা 3000 এর উত্তরের অনুরূপ , যদিও জাভাস্ক্রিপ্টে আচরণের কারণে মডুলো বেশ দীর্ঘ ।

f=x=>90-Math.abs((x%180+180)%180-90)+' deg'

ডেমো

ব্রাউজারের সামঞ্জস্যের জন্য কোডটি ES5 এ আবার লেখা হয়:

function f(x){return 90-Math.abs((x%180+180)%180-90)+' deg'}

// Snippet stuff
console.log = function(x){document.body.innerHTML += x + '<br>'};
[70,135,210,-60,91,610,-1000].map(function(v){console.log(f(v))});

কফিস্ক্রিপ্ট, 45 বাইট

f=(x)->90-Math.abs((x%180+180)%180-90)+' deg'

5
আমি ধরে নিলাম এটি একটি পিডিপি হার্ডওয়্যার ইঞ্জিনিয়ারের একটি নকশার সিদ্ধান্ত ছিল যা এই কারণটির জন্য দায়ী যে কয়েক দশক পরে আমাদের কাছে এখনও খুব কম ভাষা রয়েছে যা সংবেদনশীলভাবে প্রয়োগ করে %
পিটার টেলর

প্রথম 180 এর (t=180)পরিবর্তে তারপরে নিম্নলিখিত 180 টি প্রতিস্থাপন করা সম্ভবত কয়েকটি বাইট সংরক্ষণ করতে পারে
ডাউনগোট

@ vihan1086 এটি একই
rink.attendant.6


1

মতলব, 44

বেনামে ফাংশন ব্যবহার করা:

f=@(x)[num2str(min(mod([x -x],180))) ' deg']

উদাহরণ:

>> f=@(x)[num2str(min(mod([x -x],180))) ' deg']
f = 
    @(x)[num2str(min(mod([x,-x],180))),' deg']

>> f(70)
ans =
70 deg

>> f(210)
ans =
30 deg

>> f(-1000)
ans =
80 deg

4
যদিও এটি শেষে 'ডিগ্রি' যুক্ত করে না। (ডাউন ডাউন করেনি।)
লেজেন্ড্রে

@ লেজেন্ড্রে ওফস ধন্যবাদ! সংশোধন করা হয়েছে
লুইস মেন্ডো



-1

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

একটি কমান্ড লাইন প্যারামিটার নেয়। আবার পিএইচপি জাভাস্ক্রিপ্ট হিসাবে একই সমস্যা ভুগছে

<?=90-abs(($argv[1]%180+180)%180-90)+' deg';

ক্যানোনিকাল সলিউশনটি ব্যবহার করতে 53 বাইটের প্রয়োজন (ডিগ্রি এবং রেডিয়ান রূপান্তরটিতে প্রচুর অক্ষর লাগে):

<?=rad2deg(abs(asin(sin(deg2rad($argv[1])))))+' deg';

1
পিএইচপি কি .সংযোগের জন্য ব্যবহার করে না ?
ডাউনওয়েট

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