用Java實現原神抽卡算法

哈嘍~大家好,好久沒有更新了,也確實遇到了很多事,這篇開始恢復更新,喜歡的話,可以給個的三連,什么?你要白嫖?那可以給個免費的贊麻。

?🥇個人主頁:個人主頁?????? ? ? ? ? ? ? ?

🥈?系列專欄:【JAVASE開發】

🥉與這篇相關的文章:? ? ? ? ? ? ??

【JAVA凝氣】異常篇

【JAVA凝氣】異常篇_程序猿追的博客-CSDN博客
Java測試、反射、注解Java測試、反射、注解_java測試類注解_程序猿追的博客-CSDN博客
【JAVASE開發】帶你零基礎學JAVA項目(學生管理系統篇)【JAVASE開發】帶你零基礎學JAVA項目(學生管理系統篇)_程序猿追的博客-CSDN博客

目錄

一、前言

?二、效果演示

?三、具體代碼

四、到底奪少抽才能雙金?


一、前言

本篇文章將會用Java模擬原神抽卡,先說結論, 再來分析。

在?[1,73]?抽時, 每次出五星角色的概率為?0.6%?, 在?[74,90]?抽每次抽卡概率比上次高?6% 。

當獲取到五星角色時, 有?50%?概率是UP角色, 若這次五星沒有抽到UP角色, 下次五星角色必定是UP角色。五星角色保底為?90?抽, 五星UP角色保底為?180?抽。

4星物品(武器和角色)基礎概率為5.1%,包括保底的概率為13%,最多10次保底4星物品(角色或者武器)。當獲得4星物品時有50%的幾率為UP角色。

角色池抽卡概率遞增表

?二、效果演示

?

?

?三、具體代碼

    public static void ou(int a) {if (a <= 10)System.out.println("\33[93;1m終極無敵至尊歐皇!!\33[0m");else if (a <= 30)System.out.println("\33[93;1m大歐皇!\33[0m");else if (a <= 50)System.out.println("\33[95;1m歐皇\33[0m");else if (a <= 70)System.out.println("\33[94;1m歐非守恒\33[0m");else if (a <= 80)System.out.println("\33[91;1m非酋\33[0m");else if (a <= 85)System.out.println("\33[91;1m大非酋!\33[0m");else if (a <= 90)System.out.println("\33[91;1m終極無敵至尊非酋王!!\33[0m");}
package com.YSCKXM;import java.util.Scanner;
import java.util.Random;public class Main {public static void main(String[] args) {Random r = new Random();Scanner sc = new Scanner(System.in);int a = 0, i = 0;int jin = 0, zi = 0, P = 0, L = 0, jinCount = 0;int ys = 0;int sum = 0;int[] logs = new int[200];while (true) {System.out.println("原石:" + ys);System.out.println("請選擇");System.out.println("A-單抽");System.out.println("B-十連");System.out.println("C-氪648");System.out.println("D-查詢抽卡記錄");System.out.println("其它-退出");char c = sc.next().charAt(0);switch (c) {case 'A':if (ys >= 160) {a = 1;ys -= 160;} else {a = -2;System.out.println("\33[91;1m原石不足,請充值!\33[0m");}break;case 'B':if (ys >= 1600) {a = 10;ys -= 1600;} else {a = -2;System.out.println("\33[91;1m原石不足,請充值!\33[0m");}break;case 'C':a = -2;ys += 6480;System.out.println("\33[92;1m充值成功!\33[0m");break;case 'D':a = -2;if (logs[0] != 0) {System.out.print("\33[96;1m抽卡記錄:\33[0m");for (i = 0; i < L; i++) {sum += logs[i];System.out.print(logs[i] + " ");}sum = sum / L;System.out.println("");System.out.println("\33[96;1m平均出金:\33[0m" + sum);ou(sum);} elseSystem.out.println("\33[37;1m暫未出金\33[0m");break;default:return;}if (a == -2) continue;for (i = 0; i < a; i++) {int num1 = r.nextInt(1000) + 1;int num2 = r.nextInt(1000) + 1;if (jin >= 89 || (num1 > 0 && num1 <= 6 && jin <= 72) || ((num1 > 0 && num1 <= 6 + (jin - 72) * 60) && jin >= 73)) {System.out.print("\33[93;1m金\33[0m ");{P = jin + 1;logs[L] = P;L++;jinCount++;jin = 0;zi++;}} else if ((zi >= 9 || (num2 >= 1 && num2 <= 51 && zi <= 7) || (num2 >= 1 && num2 <= 561 && zi == 8))) {System.out.print("\33[95;1m紫\33[0m ");zi = 0;jin++;} else {System.out.print("\33[94;1m藍\33[0m ");jin++;zi++;}}System.out.println(jin + "\33[37;1m抽未出金\33[0m");if (P != 0) {if (jinCount == 1)System.out.println("\33[96;1m第\33[0m" + P + "\33[96;1m抽出金\33[0m");else if (jinCount >= 1)System.out.println(jinCount + "\33[93;1m連金\33[0m");jinCount = 0;ou(P);P = 0;}}}}

四、到底奪少抽才能雙金?

改一個分支條件,flag 是開關, 這時我們的原石數量是無限,循環一直抽下去。

                    else if (jinCount >= 1 && jin == 2 && P == 10){System.out.println("第" + jinCount + "抽出了\33[93;1m連金\33[0m");jinCount = 0;P = 0;flag = 1;}

運行結果(僅供參考,具體以實際為準,反正我還沒雙金過,嗚嗚嗚)?

不積跬步無以至千里,趁年輕,使勁拼,給未來的自己一個交代!向著明天更好的自己前進吧!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/42038.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/42038.shtml
英文地址,請注明出處:http://en.pswp.cn/news/42038.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

七月 NFT 行業解讀:游戲和音樂 NFT 引領增長,Opepen 掀起熱潮

作者&#xff1a;lesleyfootprint.network 2023 年 7 月&#xff0c;NFT 市場的波動性持續存在&#xff0c;交易量呈下降趨勢。然而&#xff0c;游戲和音樂 NFT 等領域的增長引人注目。參與這些細分領域的獨立用戶數量不斷增加&#xff0c;反映了這些領域的復蘇。 本綜合報告…

lvs負載均衡群集

lvs組成 1、lvs基于內核態的netfilter框架實現的IPVS功能&#xff0c;工作在內核態用戶配置VIP等相關信息并且傳遞到IPVS 就需要用到IPVSadm工具。 2、ipvsadm&#xff1a;IPVSadm是lvs用戶態的配套的工具&#xff0c;可以實現VIP和RS 增刪改查。 IPVSadm就是類似于iptables…

侯捷 八部曲 C++面向對象高級開發(上)+(下)【C++學習筆記】 超詳細 萬字筆記總結 筆記合集

文章目錄 Ⅰ C part1 面向對象編程1 頭文件與類的聲明1.1 c vs cpp關于數據和函數1.2 頭文件與類1.2.1 頭文件1.2.2 class的聲明1.2.3 模板初識 2 構造函數2.1 inline 函數2.2 訪問級別2.3 ctor 構造函數2.3.1 ctor 的寫法2.3.2 ctor/函數 重載2.3.3 ctor 放在 private 區 2.4 …

記vite打包vue項目內存溢出問題解決

出現問題 FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory解決方法一&#xff1a; 1.根據網上的資料是通過全局下載npm包increase-memory-limit&#xff1a; npm install -g increase-memory-limit2.在項目目錄執…

學習Vue:路由參數與查詢參數傳遞

在Vue.js中&#xff0c;路由與導航不僅涉及到頁面之間的切換&#xff0c;還包括了向頁面傳遞參數以及獲取查詢參數的功能。本文將詳細介紹如何在Vue Router中傳遞路由參數和查詢參數&#xff0c;幫助您更好地理解和使用這些功能。 路由參數的傳遞 路由參數是指在URL中的動態片…

K8s內部的網路模式實現理解

overlay 網絡模式 在 Kubernetes 中&#xff0c;overlay 網絡模式被用于實現容器之間的網絡通信。 K8s 使用了一種稱為容器網絡接口&#xff08;Container Network Interface&#xff0c;簡稱CNI&#xff09;的規范&#xff0c;該規范定義了容器如何進行網絡連接。實際上&…

SDP 與Rtcp-fb

1、sdp介紹 SDP&#xff08;Session Description Protocol&#xff09;是一種用于描述多媒體會話的協議&#xff0c;它在會話層起著重要的作用。SDP的主要功能是提供會話的元數據和配置信息&#xff0c;以便參與者能夠協商和建立一致的會話。 以下是SDP在會話層的作用&#x…

生活隨筆,記錄我的日常點點滴滴.

前言 &#x1f618;個人主頁&#xff1a;曲終酣興晚^R的小書屋&#x1f971; &#x1f615;作者介紹&#xff1a;一個莽莽撞撞的&#x1f43b; &#x1f496;專欄介紹&#xff1a;日常生活&往事回憶 &#x1f636;?&#x1f32b;?每日金句&#xff1a;被人暖一下就高熱&…

catboost推理開GPU加速

核心設置 model.predict(feature, task_type‘GPU’) 代碼參考 # 訓練配置 params {"catboost": {"n_estimators": 7000,"learning_rate": 0.03,"eval_metric": "AUC","loss_function": "RMSE",&qu…

【sgDragSize】自定義拖拽修改DIV尺寸組件,適用于窗體大小調整

核心原理就是在四條邊、四個頂點加上透明的div&#xff0c;給不同方向提供按下移動鼠標監聽 &#xff0c;對應計算寬度高度、坐標變化 特性&#xff1a; 支持設置拖拽的最小寬度、最小高度、最大寬度、最大高度可以雙擊某一條邊&#xff0c;最大化對應方向的尺寸&#xff1b;再…

一次Linux中的木馬病毒解決經歷(6379端口---newinit.sh)

病毒入侵解決方案 情景 最近幾天一直CPU100%,也沒有注意看到了以為正常的服務調用,直到騰訊給發了郵件警告說我的服務器正在入侵其他服務器的6379端口,我就是正常的使用不可能去入侵別人的系統的,這是違法的. 排查 既然入侵6379端口,就懷疑是通過我的Redis服務進入的我的系統…

Vue基礎-1.知識導航

知識導航&#xff08;就問全不全&#xff09; 當學習 Vue.js 時&#xff0c;除了基本的 HTML、CSS 和 JavaScript 知識外&#xff0c;還有一些其他的技術和語法需要了解&#xff0c;例如 ES6 和 TypeScript。以下是您可能需要學習的一些基礎知識和對應的學習資源&#xff0c;我…

css中變量和使用變量和運算

變量&#xff1a; 語法&#xff1a;--css變量名&#xff1a;值&#xff1b; --view-theme: #1a99fb; css使用變量&#xff1a; 語法&#xff1a;屬性名&#xff1a;var( --css變量名 )&#xff1b; color: var(--view-theme); css運算&#xff1a; 語法&#xff1a;屬性名…

vue3 rouer params傳參的問題

route.params在頁面刷新的時候數據會丟失&#xff0c;所以vue3 棄用了params方式&#xff01; 但是&#xff0c;vue3又更新了一個替代params的方式&#xff1a;history API import { useRouter } from "vue-router" const router userRouter; // 跳轉路由&#xff…

JDBC封裝與設計模式

什么是 DAO &#xff1f; Data Access Object(數據存取對象) 位于業務邏輯和持久化數據之間實現對持久化數據的訪問 DAO起著轉換器的作用&#xff0c;將數據在實體類和數據庫記錄之間進行轉換。 ----------------------------------------------------- DAO模式的組成部分 …

數據結構--拓撲排序

數據結構–拓撲排序 AOV? A O V ? \color{red}AOV? AOV?(Activity On Vertex NetWork&#xff0c;?頂點表示活動的?)&#xff1a; ? D A G 圖 \color{red}DAG圖 DAG圖&#xff08;有向?環圖&#xff09;表示?個?程。頂點表示活動&#xff0c;有向邊 < V i , V j …

計算機網絡的性能指標

計算機網絡的性能指標 1. 速率 速率是指數據在網絡中傳送的速度&#xff0c;通常用比特率或數據率來表示&#xff0c;單位是b/s&#xff0c;或bit/s&#xff0c;即比特每秒&#xff0c;或者bps(bit per second)。 速率單位&#xff1a;1 Ybps 10^24 bps(堯), 1 Zbps 10^21…

python中的lstm:介紹和基本使用方法

python中的lstm&#xff1a;介紹和基本使用方法 未使用插件 LSTM&#xff08;Long Short-Term Memory&#xff09;是一種循環神經網絡&#xff08;RNN&#xff09;的變體&#xff0c;專門用于處理序列數據。LSTM 可以記憶序列中的長期依賴關系&#xff0c;這使得它非常適合于各…

深度思考rpc框架面經之四

7 netty機制的一些理解 推薦閱讀&#xff1a; 深度思考netty網絡編程框架 7.1 Netty支持的端口號: Netty可以綁定到任何合法的端口號&#xff0c;這與大多數網絡庫類似。有效的端口范圍是從0到65535&#xff0c;但通常建議使用1024以上的端口&#xff0c;因為0-1023的端口已…

算法與數據結構(二十四)最優子結構原理和 dp 數組遍歷方向

注&#xff1a;此文只在個人總結 labuladong 動態規劃框架&#xff0c;僅限于學習交流&#xff0c;版權歸原作者所有&#xff1b; 本文是兩年前發的 動態規劃答疑篇open in new window 的修訂版&#xff0c;根據我的不斷學習總結以及讀者的評論反饋&#xff0c;我給擴展了更多…