最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Python學(xué)習(xí)報(bào)告:原神模擬抽卡系統(tǒng)2.0

2023-07-27 17:41 作者:北海-波羅的海  | 我要投稿

命苦的地信人啊

文章一直沒空更新,說好7月5號(hào)發(fā)的文那是一拖再拖

算了,姑且把我的實(shí)驗(yàn)報(bào)告放上來充專欄吧(不是)

摘要:

原神作為一款由上海米哈游網(wǎng)絡(luò)科技股份有限公司開發(fā)的二次元游戲,在社會(huì)上具有相當(dāng)?shù)闹?。其中涉及到的“抽卡”的角色獲取方式,涉及到了數(shù)學(xué)概率與計(jì)算機(jī)這兩個(gè)領(lǐng)域。本系統(tǒng)以Python中的“隨即生成數(shù)”模塊為起點(diǎn),利用程序模擬在游戲“原神”中的抽卡活動(dòng),具有一定的社會(huì)娛樂價(jià)值。

抽卡解讀:

原神的抽卡具有大小保底機(jī)制,90抽為一個(gè)保底,保底必出金,但是不能確定是否為當(dāng)期up五星角色。若小保底歪了,則下一個(gè)90抽為一個(gè)大保底,必定出當(dāng)期5星up角色。每十抽必定出一個(gè)四星。同時(shí),在抽卡過程中也會(huì)掉落四星的武器以及角色,并且會(huì)返還一定的星輝用于兌換抽卡資源。

原神的抽卡基礎(chǔ)概率為:當(dāng)期up金0.3%,其他金0.3%,四星武器5.1%,四星角色2.55%。

當(dāng)期滿命角色最多需要抽出7個(gè)當(dāng)期up金。

系統(tǒng)假設(shè)情形:

一個(gè)原神賬號(hào),全部四星角色與五星常駐角色滿命,無當(dāng)期up五星角色,當(dāng)期up無新的四星角色。

使用計(jì)算機(jī)語言:

python

程序原理:

Python中有一個(gè)插件,即隨機(jī)數(shù)生成器,其可以在一個(gè)范圍內(nèi)隨機(jī)生成任意整數(shù),且每個(gè)數(shù)的生成概率都相等。在這種情況下,我們就可以利用其隨機(jī)性來構(gòu)成本系統(tǒng)的基礎(chǔ)——即一個(gè)隨機(jī)事件發(fā)生的概率。在本系統(tǒng)中,我利用限定幾個(gè)生成的隨機(jī)數(shù)的范圍,作出抽卡時(shí)的基礎(chǔ)概率。

同時(shí),由于原神抽卡出貨的各個(gè)情況透明且具有一定條件,可以利用條件控制語句將其區(qū)分,分別進(jìn)行運(yùn)算。

鑒于抽卡本身具有一定的“循環(huán)性”,可利用循環(huán)語句不斷進(jìn)行“抽卡活動(dòng)”。

程序源代碼(含注釋):

count=0#記錄抽數(shù)

mid_z=0#記錄紫保底

mid_j=0#記錄金保底

XH=0#記錄星輝總數(shù)

weapen=0#記錄四星武器總數(shù)

wai=0#記錄歪了幾次

chu=0#記錄出了幾個(gè)當(dāng)期五星角色

jilu1=0#記錄指示是大保底還是小保底

jilu2=0#記錄是否出紫

d=input("請(qǐng)輸入你的抽數(shù)。")

c=int(d)

?

def chouka_0_delete():#排除沒粉球

????if c == 0:

????????print("快去肝地圖吧!")

????????exit()

def chu5_luoji():

????global jilu1,jilu2,chu,wai,mid_z,mid_j,XH,count

????import random

????if jilu1==0:#小保底

????????t=random.randint(1,2)#判斷小保底歪不歪

????????if t==1:#小保底不歪

????????????chu=chu+1

????????????mid_z=mid_z+1

????????????mid_j=0

????????else:#小保底歪了

????????????wai=wai+1

????????????XH=XH+25

????????????jilu1=1

????????????mid_z=mid_z+1

????????????mid_j=0

????elif jilu1==1:#大保底

????????????jilu1=0

????????????chu=chu+1

????????????mid_z=mid_z+1

????????????mid_j=0

?

def chu4_luoji():

????import random

????global XH,jilu1,jilu2,chu,wai,mid_z,mid_j,weapen

????f = random.randint(1, 3)

????if f == 1:

????????XH = XH + 5

????????jilu2 = 0

????????mid_j = mid_j + 1

????????mid_z = 0

????else:

????????weapen = weapen + 1

????????XH = XH + 2

????????jilu2 = 0

????????mid_j = mid_j + 1

????????mid_z = 0

?

def chouka():#抽卡系統(tǒng)

????global count,mid_z,mid_j,jilu2

????import random

????r = random.randint(1, 2000) ?# 設(shè)置隨機(jī)數(shù)

????if 1 <= r <= 12: ?# 概率事件發(fā)生:出金

????????chu5_luoji()

????if 13 <= r <= 165: ?# 出紫武器

????????chu4_luoji()

????if 166 <= r <= 2000: ?# 概率事件發(fā)生,出藍(lán)

????????mid_z = mid_z + 1

????????mid_j = mid_j + 1

????????jilu2 = 1

?

chouka_0_delete()

?

while count<c:

????if mid_j%90==89:

????????chu5_luoji()

????????count=count+1

????elif mid_z%10==9:

????????chu4_luoji()

????????count=count+1

????elif mid_z%10!=9 and mid_j%90!=89:

????????chouka()

????????count=count+1

????if chu == 7:

????????break

?

q = XH / 5

p = int(q)

m = c-count

print(f"你花了{(lán)count}抽,還剩{m}個(gè)糾纏之緣。")

print(f"剩余{XH}星輝,可兌換{p}個(gè)糾纏之緣。")

print(f"獲得了{(lán)weapen}把四星武器。")

print(f"歪了{(lán)wai}次。")

print(f"出了{(lán)chu}個(gè)當(dāng)期up五星角色。")

?

程序演示


?

當(dāng)前程序存在問題:

1、沒有正確反應(yīng)四星武器及角色的保底機(jī)制。原神中出四星角色的保底機(jī)制比本系統(tǒng)模擬的更加復(fù)雜,其多個(gè)保底互相糾纏,難以分離并加以演示。

2、系統(tǒng)缺少與外部的交互,假想情況過于理想。本系統(tǒng)無法與米游社、原神等軟件交互,缺少獲取真實(shí)卡池、倉庫的渠道。僅可用于演示、娛樂,暫時(shí)缺少大規(guī)模推廣的可行性。

3、程序涉及到了巨量的指示器(用于指示當(dāng)前卡池狀態(tài),例如有沒有歪、有沒有保底),整個(gè)程序過于臃腫繁瑣。


Python學(xué)習(xí)報(bào)告:原神模擬抽卡系統(tǒng)2.0的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
安达市| 乐清市| 分宜县| 天台县| 西平县| 孙吴县| 阿图什市| 漳浦县| 呼伦贝尔市| 张掖市| 台湾省| 石城县| 泉州市| 体育| 虹口区| 临汾市| 紫阳县| 蓬安县| 泸西县| 翁牛特旗| 吴桥县| 鄂温| 镇江市| 乡宁县| 千阳县| 东海县| 德江县| 万州区| 濮阳县| 安西县| 拉萨市| 潢川县| 莎车县| 梨树县| 濮阳市| 甘洛县| 澄江县| 颍上县| 花垣县| 越西县| 萝北县|