Advertisement
Guest User

Untitled

a guest
Aug 19th, 2017
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.24 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.HashMap;
  3. import java.util.List;
  4. import java.util.Random;
  5.  
  6. public class Test
  7. {
  8.     static List<ItemData> list = new ArrayList<>();
  9.     static HashMap<ItemData, Integer> count = new HashMap<>();
  10.     static final int times = 200;
  11.     static ItemData broken = new ItemData("一般的魚", 0d);
  12.    
  13.     static
  14.     {
  15.         list.add(new ItemData("強化碎片", 25d));
  16.         list.add(new ItemData("生命紋章", 2d));
  17.         list.add(new ItemData("能量紋章", 2d));
  18.         list.add(new ItemData("中級生命紋章", 1.5d));
  19.         list.add(new ItemData("中級能量紋章", 1.5d));
  20.         list.add(new ItemData("高級生命紋章", 1d));
  21.         list.add(new ItemData("高級能量紋章", 1d));
  22.         list.add(new ItemData("全效恢復藥劑(★★★★★)", 1d));
  23.         list.add(new ItemData("重鍊石", 1d));
  24.         list.add(new ItemData("防爆卷軸", 1d));
  25.         list.add(new ItemData("冷卻紋章", 0.1));
  26.         list.add(new ItemData("中級冷卻紋章", 0.05));
  27.         list.add(new ItemData("幸運紋章", 0.05));
  28.         list.add(new ItemData("重鍊清除石", 0.01));
  29.         list.add(new ItemData("技能突破石", 0.01));
  30.         list.add(new ItemData("高級冷卻紋章", 0.01));
  31.         list.add(new ItemData("高級幸運紋章", 0.01));
  32.         list.add(new ItemData("重鍊清除石", 0.01));
  33.         list.add(new ItemData("技能突破石", 0.01));
  34.        
  35.         for (ItemData data : list)
  36.         {
  37.             count.put(data, 0);
  38.         }
  39.        
  40.         count.put(broken, 0);
  41.     }
  42.    
  43.     public static void main(String[] args)
  44.     {
  45.         boolean b = false;
  46.         for (int i = 0; i <= times; i++)
  47.         {
  48.             for (ItemData data : list)
  49.             {
  50.                 if (chancePercent(data.getChance()))
  51.                 {
  52.                     b = true;
  53.                     count.put(data, count.get(data)+1);
  54.                     break;
  55.                 }
  56.                 else continue;
  57.             }
  58.             if (!b)
  59.                 count.put(broken, count.get(broken)+1);
  60.             b = false;
  61.         }
  62.        
  63.         System.out.println("統計數量: " + times);
  64.         System.out.println("統計結果: ");
  65.         System.out.println("一般的魚: " + count.get(broken));
  66.        
  67.         for (ItemData pd : list)
  68.         {
  69.             System.out.println(pd.getName() + ": " + count.get(pd));
  70.         }
  71.     }
  72.  
  73.     public static final boolean chancePercent(double d){
  74.         if (d >= 100)
  75.             return true;
  76.         else if (d <= 0)
  77.             return false;
  78.         return (new Random().nextInt(10000) <= (int) (d * 100) - 1);
  79.     }
  80.  
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement