用你的卡西歐模擬原神抽卡?。?!

廢話不多說,程序走起! (這么好玩的程序,投個幣吧)
注意:所有【 】中的均為所按按鍵
考慮到991cnx是高中生(競賽狗)大學(xué)生研究生最常用的型號 也是普及率最高的,所以本教程使用卡西歐fx-991CN X作為示范
準(zhǔn)備工作:
在教程開始之前,請先設(shè)置你的卡西歐: 1.設(shè)置輸入/輸出格式:線性輸入/線性輸出
【SHIFT】【設(shè)置】【1】【3】
2.設(shè)置小字體/多行顯示:
【SHIFT】【設(shè)置】【↓】【↓】【4】【2】
3.其次,了解變量與變量賦值 調(diào)用變量(打出源碼中的淺藍(lán)色字母):
【ALPHA】【A】(或者其他字母)
變量賦值(打出→A): 當(dāng)你打完一行代碼的前面部分后,按
【STO】【A】(或者其他字母)
即可打出→A (或其他字母)
4.儲存器數(shù)據(jù)清空:
【SHIFT】【9】【2】【=】【AC】
可使用
【SHIFT】【STO】
查看所有變量當(dāng)前的數(shù)值
5.當(dāng)運(yùn)行多行命令時,顯示器上方右數(shù)第二個圖標(biāo)亮起(像是豎起來的等號,見下圖右上方),代表程序在運(yùn)行的過程中,此時無法查看變量,無法退出程序,請繼續(xù)按
【=】
直至該圖標(biāo)熄滅代表
循環(huán)結(jié)束
注意:
請務(wù)必從前往后輸入代碼,因?yàn)橘x值只能賦在全部代碼的末尾(即使你把光標(biāo)移動到代碼中間)
另外,每賦值一次,會自動運(yùn)行已寫完的程序,只需按
【=】
至循環(huán)結(jié)束,再按
【←】
即可回到程序編輯界面。
輸入程序或運(yùn)行程序時永遠(yuǎn)永遠(yuǎn)不要按
【↑】【↓】
鍵,永遠(yuǎn)不要?。。?!(否則你需要重打一遍代碼來治療低血壓doge)
程序源代碼:
卡西歐fx-991 CN X 原神抽卡模擬器v4.1
Rnd(10^(9)+Abs(RanInt#(167-(Rnd(10^(9)+ Abs(1000÷(60×
A
+6)-0.5))-10^(9)),167)÷167-0.5))-10^(9)→
B
:
(Rnd(10^(9)+Abs((
C
+1)÷73-0.5))-10^(9)+
A
)× Abs(
B
-1)→
A
:
B
× RanInt#(1,2)×66666666:
Abs(
B
-1)×(
C
+1)→
C
注意:
1.所有變量均用淺藍(lán)色字體標(biāo)出,以免混淆 2.注意一共四行語句,前三行末尾有冒號,最后一行沒有 3.核對括號數(shù)量 如果有問題,請?jiān)谠u論區(qū)詢問,up看到后會進(jìn)行解答(學(xué)生黨,回復(fù)較慢,抱歉) 以上就是源代碼,由于其復(fù)雜性,請務(wù)必核對源代碼以
保證正確輸入
運(yùn)行方法:
代碼編寫完成后,按
【=】
即可運(yùn)行
每按四次為一個周期,代表一次單抽
每個循環(huán)最后一個數(shù)字代表當(dāng)前抽數(shù)
顯示6666666代表出金且沒歪
顯示133333332代表出金且歪了
出金后上方第三行代表所用抽數(shù)
(如圖為76抽歪了)
每次出金后繼續(xù)按
【=】
系統(tǒng)會自動重置,所以可以實(shí)現(xiàn)連金
想要退出時,在循環(huán)結(jié)束后按
【←】
即可
另外,現(xiàn)在還沒有大保底機(jī)制,預(yù)計(jì)在v5.0更新
卡西歐語言運(yùn)行原理:
由于卡西歐沒有if語句,沒有for循環(huán),所以想到使用取整來判定條件并輸出0或1,但是卡西歐并沒有取整函數(shù),這里使用Rnd函數(shù)與絕對值結(jié)合的方式來解決 if語句標(biāo)準(zhǔn)形式:
Rnd(10^(9)+ Abs( x÷a-0.5))-10^(9)
這個語句代表將x與a比較大小,僅當(dāng)0≤x≤a時輸出0,其他情況下輸出非零整數(shù) 原理很簡單,就是初中競賽的常見套路,對一個數(shù)字-0.5再四舍五入,等效于取整操作 這行程序有很大的局限性,比如需要使用到非零的輸出時會很麻煩,而且只能做到數(shù)字比大小,還請大佬分享更加高端的方法 由于卡西歐只能從上往下依次運(yùn)行命令,不能分支也不能跳過某行程序,所以我們可以把所有分支全部羅列出來,利用
Abs(B-1)×.........
B=0時執(zhí)行后方操作,B=1時后方輸出0 來選擇需要執(zhí)行的命令與需要跳過的命令 這也是抽卡程序中金自動重置所有參數(shù)的實(shí)現(xiàn)機(jī)制 另外,作者比較笨,沒想到更好的思路,請各位大佬在評論區(qū)指教,謝謝!
寫在最后:
編寫這個卡西歐程序并且迭代到v4.1大概花費(fèi)了在校一天半天的時間,起因是同學(xué)A(正在停課的物競狗)分享了變量賦值的操作,同學(xué)B(退役的物競狗)跟我(擺爛的物競狗)聊著原神抽卡的機(jī)制,我立刻想到卡西歐貌似可以開發(fā)一下,去跟同學(xué)C(今年必進(jìn)隊(duì)的物競狗)討論了一下數(shù)學(xué)運(yùn)算的方式,然后與同學(xué)A/B同時獨(dú)立進(jìn)行抽卡機(jī)制的開發(fā)。我們?nèi)齻€在周五晚自習(xí)幾乎同時獨(dú)立完成了代碼的編寫(并且思路比較接近)。 我個人的版本迭代: v1.0實(shí)現(xiàn)了概率函數(shù)的擬合與保底機(jī)制 v2.0實(shí)現(xiàn)出金后自動重置,連金具有可信度 v2.1加入歪與不歪的判定 v3.0優(yōu)化代碼結(jié)構(gòu) v4.0壓縮語句數(shù)量至7句 v4.1壓縮語句數(shù)量至4句 另外,同學(xué)B的代碼也很優(yōu)秀,只用了兩行就完成了同等功能(犧牲了使用體驗(yàn))摘錄如下(已獲得授權(quán))
感謝三位同學(xué)的支持?。。?都看到這里了,不投個幣嘛