हवाई जहाज का नेविगेशन


10

आपको एक स्थानीय हवाई जहाज वितरण कंपनी के लिए एक उड़ान मार्ग की योजना बनाने का काम सौंपा गया है। आपको बिंदु A से बिंदु B तक एक हवाई जहाज को रूट करने की आवश्यकता है। आप केवल A पर शुरू नहीं कर सकते, B पर हवाई जहाज को इंगित कर सकते हैं, और फिर भी, क्योंकि प्रचलित हवाएं आपको पाठ्यक्रम से उड़ा देंगी। इसके बजाय आपको यह पता लगाने की आवश्यकता है कि आपको किस दिशा में हवाई जहाज को इंगित करना चाहिए ताकि हवा को ध्यान में रखते हुए, यह सीधे बी के लिए उड़ान भरे।

इनपुट

7 फ्लोटिंग-पॉइंट नंबर, एन्कोडिंग A_x, A_y, B_x, B_y, S, W_x, W_y। ये आपके आरंभ व गंतव्य के निर्देशांक, अपने हवाई जहाज के airspeed, और साथ एक्स हवा की ताकत और y अक्ष (हवा चल रही दिशा रहे हैं करने के लिए , नहीं से)।

उत्पादन

आपको कोण को डिग्री में (सकारात्मक एक्स अक्ष से वामावर्त घूमते हुए) प्रिंट करना चाहिए, जिससे विमान को एक सीधी रेखा में बी तक पहुंचने के लिए इंगित करना चाहिए। GROUNDEDअगर हवा इतनी मजबूत है कि यात्रा को असंभव बना दें तो प्रिंट करें ।

आप निकटतम डिग्री के लिए चक्कर लगा सकते हैं, और ऐसा किसी भी विधि से कर सकते हैं जिसे आप (ऊपर / नीचे / निकटतम / ...) चाहेंगे।

उदाहरण

आदानों

0 0 10 0 100 0 -50
0 0 10 0 50 -55 0
3.3 9.1 -2.7 1.1 95.0 8.8 1.7

आउटपुट

30
GROUNDED
229

सबसे छोटा कोड जीतता है।


1
सपाट धरती? या छोटे ईंधन टैंक :-)
pmg

5
रुको ... पृथ्वी समतल नहीं है?
कीथ रान्डेल

1
(Xb-Xa) (V · sinα + Wy) = (Yb-Ya) (V · cosα + Wx) ... महान।
ओलेह प्रिनपिन

@ ब्लेकपिरिट: क्या होगा यदि दो वैक्टर विपरीत दिशाओं में हैं?
लोजैकर 22

@BlaXpirit: a sin x + b cos x = cअपने समीकरण को हल करने के कुछ तरीकों के लिए Google पर खोजें । डायरेक्ट सॉल्विंग यहां जाने का सबसे अच्छा तरीका नहीं हो सकता है, ...
कीथ रान्डेल

जवाबों:


1

जे - 155 चार्ट

h=:3 :0
'c w s'=.(([:j./[:-~/2 2$4{.]),([:j./5 6{]),4{])0".y
'T X'=.+.w*+c%|c
C=.-_1 o.X%s
>((s>|w)*.(-T)<s*2 o.C){'GROUNDED';360|<.360+(C+{:*.c)*180%o.1
)

उदाहरण के लिए:

   h '0 0 10 0 100 0 -50'
30
   h '0 0 10 0 50 -55 0'
GROUNDED
   h '3.3 9.1 -2.7 1.1 95.0 8.8 1.7'
229

यदि आप जे न्यूमेरिक सिंटैक्स ( एकाकी नकार के लिए) को बुरा न मानें तो 0".आगे निकालें :y_

   h 0 0 10 0 100 0 _50
30

जैसा कि मैंने अपने पर्ल उत्तर में उल्लेख किया है, मैं केवल J सीख रहा हूं, लेकिन इसकी शक्ति को पसंद कर रहा हूं।


2

पर्ल - 222 चार्ट

use Math::Trig;($A,$a,$B,$b,$s,$W,$w)=split' ',<>;$c=atan2($b-$a,$B-$A);$A=atan2($w,$W);$S=sqrt($W*$W+$w*$w);$X=$S*sin($A-$c);$T=$S*cos($A-$c);$C=asin($X/$s);print((-$T>$s*cos($C))?"GROUNDED":(360+rad2deg($c-$C))%360,"\n")

स्ट्रैफोरवर्ड एल्गोरिथ्म, और वास्तव में केवल व्हॉट्सएप और चर नाम लंबाई निचोड़कर गोल्फिंग की जाती है, लेकिन मुझे लगा कि हमें यहां पहले जवाब की जरूरत है। मैं गोल्फ के लिए कुछ जे सीख रहा हूं; मुझे संदेह है कि केवल जे (या रूबी) को अनुवाद करने से यह आसानी से हरा देगा। उन कोशिश करने के लिए बंद।

$X= क्रॉसवर्ड घटक, $T= टेलविंड घटक। अगर टेलविंड वास्तव में एक हेडविंड (यानी, नकारात्मक) है और हमारे एयरस्पीड से अधिक मजबूत है, तो हम ग्राउंडेड हैं। अन्यथा, $Cहवा सुधार कोण है कि हम $cअपने शीर्षक प्राप्त करने के लिए हमारे पाठ्यक्रम से घटाते हैं । हमें अपने वेग के क्रॉस-ट्रैक घटक के साथ क्रॉसविंड को संतुलित करने के लिए पर्याप्त मोड़ने की आवश्यकता है।


0

पर्ल: 193

बेशक यह (ज्यादातर) DCharness का पर्ल कोड है: लेकिन स्व-पुनर्लेखन स्रोत किसे पसंद नहीं है?

use Math::Trig;$/=' ';@i=<>;$_='1=atan2(3-1,2-0);0=atan2(6,5);2=sqrt(6*6+5*5);5=2*sin(0-1);3=2*cos(0-1);6=asin(5/4);print-3>4*cos 6?GROUNDED:int rad2deg(1-6),"\n"';s/((?<!\w)\d)/\$i[$1]/g;eval

इसके अलावा यह आउट ऑफ़ स्पेक (यानी <0 या> 360) आउटपुट करेगा, लेकिन क्या मैंने सेल्फ-रीराइटिंग सोर्स का उल्लेख किया है?

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