<prompt> Kwa kuzingatia API rand7 ambayo hutengeneza nambari kamili ya nasibu katika safu 1, 7, andika chaguo za kukokotoa rand10 ambayo hutoa nambari kamili ya nasibu katika safu 1, 10. Unaweza tu kuita API rand7, na hupaswi kupiga API nyingine yoyote. Tafadhali usi kutumia API ya nasibu iliyojengewa ndani ya lugha.Kila kisa cha jaribio kitakuwa na hoja moja ya ndani n, idadi ya mara ambazo chaguo lako la kukokotoa rand10 litaitwa wakati wa kujaribu. Kumbuka kuwa hii ni sio hoja iliyopitishwa kwa rand10.Mfano wa 1:Ingizo: n 1Pato: 2Mfano wa 2:Ingizo: n 2Pato: 2,8Mfano wa 3:Ingizo: n 3Pato: 3,8,10Vikwazo: 1 n 105Fuatilia: Je, thamani inayotarajiwa ni nini kwa idadi ya simu kwa chaguo za kukokotoa rand7? Je, unaweza kupunguza idadi ya simu kuwa rand7?  <response>: chatudef rand7: pitisha API Iliyotolewadef rand10: matokeo Hakuna wakati Kweli: matokeo rand7 - 1 7 rand7 ikiwa matokeo 40: mapumziko matokeo ya kurudisha 10 1maelezoHivi ndivyo algorithm inavyofanya kazi:1. Piga rand7 mara mbili na uchukue thamani hizo mbili kama safu, safu wima fahirisi katika gridi ya 7x7 kwa hivyo kila thamani ni 1 hadi 7. Hii inatupa maadili 49 iwezekanavyo, na kutengeneza usambazaji sare.2. Kwa kweli tunabadilisha thamani mbili a na b kutoka 1 hadi 7 hadi thamani moja, matokeo a - 1 7 b. Hii itatupa thamani kati ya 1 na 49 pamoja.3. Ikiwa matokeo ni zaidi ya 40, tunakataa thamani hii na tujaribu tena kwa kuwa hii ni kubwa kuliko tunavyoweza kuweka kwenye safu ya 1 hadi 10. Tutatumia thamani matokeo kuwakilisha masafa 1, 10 kwa kuchukua moduli ya 10 na kuongeza 1 yaani matokeo 10 1.4. Kwa njia hii, tunahakikisha thamani isiyo ya kawaida kati ya 1 hadi 10. Kwa kuwa baadhi ya thamani zimekataliwa, idadi inayotarajiwa ya simu kwa rand7 ni 2.4 uwezekano wa thamani kukubalika ni 4049, kwa hivyo simu zinazotarajiwa ni 24049.5. Idadi ya simu kwa rand7 imeboreshwa katika mbinu hii, na kuipunguza hadi simu 2 kwa wastani. 