سلام دوستان. کد زیر به صورت رندوم به هر یک از اینپوت ها درصد خاصی رو اختصاص میده از 1-100 ولی من میخوام به گونه ای باشه که جمه هر 4 اینپوت 100 بشه. یعنی مثلا اولی 50 دومی 25 سومی 5 و چهارمی 20 درصد باشه. ممنون میشم کمکم کنید.
from random import random
import random as rand
from re import A
import time
from colored import fg, bg, attr
color1 = fg('red')
color2 = fg('blue')
color3 = fg('hot_pink_1a')
color4 = fg('green')
res = attr('reset')
print("think in which team you're gonna play ? (enter multiple teams) ")
a,b,c,d = input("Enter here : ").split('-',4)
print(color1 + f'First: {a} {rand.randint(0,101)}%' +res)
print(color2 + f'Second: {b} {rand.randint(0,101)}%' +res)
print(color3 + f'Third: {c} {rand.randint(0,101)}%' +res)
print(color4 + f'Forth: {d} {rand.randint(0,101)}%' +res)
teamlist = []
teamlist.extend([a,b,c,d])
print('Loading...')
time.sleep(3)
print(teamlist)
برای اینکه مجموع چهار عدد a b c d برابر 100 شود توی بدترین حالت این گونه تقسیم بندی میشود
a 97
b 1
c1
d1
پس اولین عدد رندوم باید بین 1-97 جنریت شود
پس مجموع عدد های b c و d باید بشود (100-a)
حالا فرضا عدد a برابر 37 شد
مجموع عدد های بعدی باید برابر 37-100 یا 63 شود
اگر عدد b برابر 61 شود
عدد c برابر 1
و عدد d برابر 1
پس عدد دوم باید بین عدد 1 تا 61 انتخاب شود
فرض می کنیم عدد b برابر 50 شد
حال a بعلاوه b برابر 87 شده و 87-100 برابر 13 است
حال محموع دو عدد باقی مانده باید 13 شود
در بدترین حالت یکی 12 و دیگری 1 می باشد
پس به طور کلی داریم :
a = randint(0,(100-3))
b = randint(0,(100-a)-2)
c=randint(0,(100-a-b)-1)
d=randint(0,(100-a-b-c))
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟