चैन रूल करो


15

हमारे पास भेदभाव और एकीकरण पर बहुत सारी चुनौतियां हैं, लेकिन संबंधित दरों की समस्याओं को हल करने पर कोई नहीं। तो इस चुनौती में, आपको डेरिवेटिव का एक गुच्छा मिलेगा (वे संख्यात्मक होंगे, किसी भी चर के संदर्भ में नहीं) और एक और व्युत्पन्न खोजना होगा।

इनपुट फॉर्म में, समीकरणों की एक नई पंक्तिबद्ध सूची में आएगा dx/dt = 4। दशमलव और नकारात्मक हो सकते हैं।

इनपुट एक अंतर के साथ समाप्त हो जाएगा, जिसे आपको ढूंढना होगा। आप मान सकते हैं कि इसे खोजने के लिए हमेशा पर्याप्त जानकारी होगी, बट भी अतिरिक्त जानकारी हो सकती है।

आपको व्युत्क्रम फ़ंक्शन के व्युत्पन्न पर भी विचार करना पड़ सकता है, जैसे यदि आपके पास है dy/dx = 3, तो आप यह भी जानते हैं dx/dy = 1/3

आपका आउटपुट फॉर्म में होगा dy/dt = 6। सभी व्हाट्सएप आदि को एक समान होना है। मान लें कि सभी चर हमेशा एक अक्षर होते हैं (वे अपरकेस हो सकते हैं, और वे हो सकते हैं d)।

यह , इसलिए बाइट्स जीत में सबसे छोटा कोड है !

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

dy/dx = 4
dx/dt = 5
dy/dt

answer: dy/dt = 20

dy/dx = -3
dt/dx = 3
dy/dt

answer: dy/dt = -1

dA/dt = 4
dA/dC = 2
dC/dr = 6.28
dr/dt

answer: dr/dt = 0.3184713375796178

dx/dy = 7
dx/dt = 0
dy/dt

answer: dy/dt = 0

क्या आउटपुट "उत्तर: dx / dt = .318" या सिर्फ "dx / dt = .318" है?
गेमक्रॉप्स

@GamrCorps को बाद में।
माल्टसेन

2
क्या हम बिल्ट-इन समीकरण सॉल्वर का उपयोग कर सकते हैं?
मार्टिन एंडर

3
मेरे पास एक महसूस करने वाले उत्तर हैं d_/d_जो एक अनुपात के रूप में माने जाएंगे और इससे मुझे दुःख होता है
आर्कटुरस

@ मार्टिनबटनर हां, लेकिन बिल्ट डिफरेंशियल इक्वेशन सॉल्वर नहीं।
माल्टसेन

जवाबों:


2

अजगर - 278 275

किसी और ने अभी तक ऐसा नहीं किया है, इसलिए मैंने सोचा कि मैं इसे जमा कर दूंगा, भले ही यह अभी तक बहुत अच्छी तरह से गोल्फ नहीं हुआ है।

a={}
e={}
k=input
i=k()
while"="in i:
 b,d=i.split(" =");b,c=b.split("/");d=float(d)
 if d:a[b]=a.get(b,[])+[[c,1/d]]
 a[c]=a.get(c,[])+[[b,d]];i=k()
i=i.split("/")
def f(x):
 for j in a.get(x,[]):
  if j[0] not in e:e[j[0]]=e[x]*j[1];f(j[0])
e[i[1]]=1
f(i[1])
print(e[i[0]])

यहाँ यह आंशिक रूप से अधूरा है:

a={}
e={}
i=input()
while "=" in i:
 b,d=i.split(" =")
 b,c=b.split("/")
 d=float(d)
 if d:a[b]=a.get(b,[])+[[c,1/d]]
 a[c]=a.get(c,[])+[[b,d]]
 i=input()
i=i.split("/")
def f(x):
 for j in a.get(x,[]):
  if j[0] not in e:e[j[0]]=e[x]*j[1];f(j[0])
e[i[1]]=1
f(i[1])
print(e[i[0]])

थॉमस ब्वा द्वारा तीन बाइट्स बचाए गए थे।

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