मान लीजिए कोई खतरनाक वायरस है और वह तेजी से बढ़ता है। एक कारक x द्वारा वायरस कोशिकाओं की संख्या बढ़ने की संभावना 0.5 है और साथ ही एक कारक y द्वारा वायरस कोशिकाओं की संख्या बढ़ने की संभावना 0.5 है। अब अगर शुरुआत में वायरस की एक भी कोशिका थी, तो t समय के बाद वायरस कोशिकाओं की अपेक्षित संख्या की गणना करें। अगर उत्तर बहुत बड़ा है, तो मॉड परिणाम 10^9+7.
इसलिए, यदि इनपुट x =2, y =4, t =1 जैसा है, तो आउटपुट 3 होगा, क्योंकि प्रारंभ में, वायरस में केवल एक सेल होता है। x समय के बाद, प्रायिकता 0.5 के साथ, इसका आकार दोगुना (x2) हो जाता है और, अन्य 0.5 की संभावना के साथ, इसका आकार 4 गुना बढ़ जाता है। इस प्रकार, समय t =1 के बाद वायरस सेल की अपेक्षित संख्या है:0.5*2*1 + 0.5*4*1 =3.
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- एम =10^9+7
- कारक:=(x+y)/2 का तल
- res:=1
- जबकि t> 0, करें
- यदि t विषम है, तो
- res :=(res*factor) mod m
- कारक:=(कारक*कारक) मॉड एम
- t :=t/2 का तल
- यदि t विषम है, तो
- रिटर्न रेस
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
m=10**9+7
def solve(x, y, t):
factor=(x+y)//2
res=1
while t > 0:
if t % 2:
res = (res*factor) % m
factor = (factor*factor) % m
t = t// 2
return res
x = 2
y = 4
t = 1
print(solve(x, y, t)) इनपुट
2, 4, 1
आउटपुट
3