भौतिकी गोल्फ: झुकाव शूटिंग


9

"और अब पूरी तरह से अलग कुछ करने के लिए।"

एक नाराज पक्षी को एक कोण पर गोली मारी जाती है u क्षैतिज गति u पर। जमीन खड़ी है, कोण α पर झुकी हुई है। क्षैतिज दूरी q ज्ञात करें कि जमीन पर टकराने से पहले पक्षी यात्रा करता था।

शूटिंग

एक फ़ंक्शन f (α, β, u) करें जो लंबाई q को लौटाता है : जमीन से टकराने से पहले पक्षी ने जो क्षैतिज दूरी तय की थी।

बाधाएं और नोट:

  • -90 <α <90।
  • ० <180 <१ 180०।
  • α हमेशा than से छोटा होता है।
  • 0 <= u <10 ^ 9।
  • गुरुत्वाकर्षण g = 10 के कारण त्वरण ग्रहण करें।
  • आप α, instead के लिए डिग्री के बजाय रेडियन का उपयोग कर सकते हैं।
  • यू के आयाम तब तक अप्रासंगिक हैं जब तक वे जी और क्यू के अनुरूप हैं।
  • कोई हवा प्रतिरोध या कुछ भी फैंसी।

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

कुछ समीकरणों के लिए प्रक्षेप्य गति पर विकिपीडिया लेख देखें ।

नमूने:

f(0, 45, 10) = 10
f(0, 90, 100) = 0
f(26.565, 45, 10) = 5
f(26.565, 135, 10) = 15

जैसा कि मैंने फॉर्मूले के बारे में कुछ भ्रम देखा, यहाँ इसका उपयोग दूसरों के लिए किया गया है:q = ABS[1/5 u^2 Cos[β] Sec[α] Sin[β - α]]
— डॉ। बेलिसरियस

जवाबों:


3

जावा

केवल रेडियंस के लिए काम करता है

double q(double a, double b, double u){
          return (Math.abs(((-Math.tan(a)+(Math.tan(b)))*(u*u)*(0.2*(Math.cos(b)*Math.cos(b))))));
      }

गोल्फ संस्करण (पीटर के लिए धन्यवाद)

double z=u*Math.cos(b);return(Math.tan(b)-Math.tan(a))*z*z/5;

मैथ्स प्रयुक्त:

q=u Cos(B) t
q tan(A) = u sin (B) t - .5 * 10 * t^2

- tan (A)  + tan(B) = 5q/u^2 sec^2 (B)
q =  [ - tan(A) + tan (B) ] u^2
    ---------------------
    sec^2(B)*5

इसमें कुछ गड़बड़ है ... मैं सही ढंग से पता नहीं लगा सकता, क्या कोई 1 मदद कर सकता है?
— अमन ZeeK वर्मा

यह सूत्र सही नहीं है। कृपया gnibbler की पोस्ट पर टिप्पणी देखें
— Eelvex

अभी तक, हमारे पास कोई सटीक समाधान नहीं है :)
— अमन ज़ीके वर्मा

1
सूत्र को अपडेट किया ... अब कुछ
— टेस्टीसीस

आप कुछ चार्ट बचा सकते हैं - Math.abs अनावश्यक है, -x + y yx के रूप में छोटा है, * 0.2 / 5 के रूप में छोटा है, और आपके पास अनावश्यक ब्रैकेट हैं। OTOH आपको विधि का रिटर्न प्रकार याद आ रहा है।
— पीटर टेलर

2

हास्केल ( 37 35)

अमन के हल पर आधारित:

q a b u=(tan a+tan b)*u*u*cos b^2/5

मुझे लगता है, यह समस्या वास्तविक कोड-गोल्फ नहीं है, क्योंकि यह वास्तव में कुछ एल्गोरिथ्म करने की तुलना में एक सूत्र को लागू करने में अधिक है।


हो सकता है कि आप सही हों, क्योंकि सूत्र पहले ही बहुत छोटा है।
— बारह

1
कुछ पसंद करेंगे /5या /5.काम करेंगे?
— नबंर

यह सूत्र सही नहीं है। कृपया gnibbler की पोस्ट पर टिप्पणी देखें।
— बारह

2

पायथन 3 - 65 वर्ण

from math import*
f=lambda α,β,u:(tan(α)+tan(β))*u*u*.2*cos(β)**2

यह बिल्कुल सही नहीं है। 1) f हमेशा सकारात्मक होना चाहिए और 2) α> 0 के लिए = यह 0 = की तुलना में बड़ा मूल्य देता है, जो संभव नहीं है।
— 21

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