主頁 > 後端開發 > 小白量化彩票實戰(1)彩票分析及爬蟲雙色球彩票開獎資料

小白量化彩票實戰(1)彩票分析及爬蟲雙色球彩票開獎資料

2021-02-26 11:16:20 後端開發

小白量化彩票實戰(1)彩票分析及爬蟲雙色球彩票開獎資料
彩票選號碼有兩類:一是自主組號,二是軟體算號,
1、自主組號,主要用自己認為的吉祥號,例如生榷訓有特殊意義,特殊感覺的號碼,但是這些選出的號碼多于彩票號碼,,就需要依賴程式軟體進行條件過濾和縮水投注,
2、軟體算號,主要通過計算機統計,利用大數定理,概率統計,以及深度學習等工具,進行電腦選號,

如果直接選出中大獎的號碼,因為概率太低,例如雙色球中獎概率1700多萬分支一,基本不可能,但是我們分析開獎號碼條件,
一等獎:6+1
二等獎:6
三等獎:5+1
四等獎:5、4+1
五等獎:4、3+1
六等獎:2+1、1+1、0+1
我們發現只要中藍球,至少會得5元,因此我們以藍號為中獎目標,但是藍號有16個號,中獎概率為1/16,
一注彩票2元錢,假設我們一期開獎投注2注4元錢,投注2個藍號,如果任意一個選中,我們就獲得5元,贏利5-4=1元錢,
如何能夠選2個藍號,就能中5元錢,
首先要會“舍得”,不要每期都投注,這樣你必敗在大數定律中,因為長期統計,每個藍號出現的幾率,無限接近1/16,彩票機構就是賺大多數投注錯的人的錢,
寫《戰勝莊家》的索普是如何賭場賺錢的?1960年代初,一位名叫索普(Edward Thorp)的美國數學家利用剛出現不久的計算機找到了21點游戲中的機會,發展出一套通過計牌(card counting)打敗賭場的方法,索教授理論付諸實踐,用自己的計牌法連連大勝賭場,
索普計牌法的原理并不難, 先講講21點的規則:玩家和莊家(賭場)對賭,看誰手中牌的點數之和更接近(但不能超過)21點, 10,J,Q,K都算十點,2至9 按各自點數計算,A可以算1點也可以算11點, 例如下面的一手牌可以算8點,也可以算18點,
牌局開始,玩家和莊家各發兩張牌,莊家的牌一明一暗(例如下圖), 然后玩家先做決定:可以抓牌,做加倍等特殊行動,或在任何時候選擇“停”,如果玩家超過21點(爆牌)就直接輸了,否則“停”后輪到莊家行動, 莊家不能“見機行事”,只能按固定規則:手中的牌達到17點或以上必須“停”,否則必須抓,最后雙方比誰的牌更接近21點,
此外還有個特殊規定:一張A和一張十點牌(10,J,Q,K)叫“黑杰克”(Blackjack),拿到者直接取勝, 如果玩家拿到黑杰克,可贏取1.5倍籌碼,莊家拿到黑杰克只能贏取1倍籌碼,
很明顯,21點游戲中莊家和玩家各有優勢, 莊家的優勢在“后發制人”:玩家如果先爆牌,莊家可以不戰而勝,而玩家的優勢在于靈活機動,可以根據自己的牌和莊家暴露的那張牌決定戰術,此外,黑杰克3:2的賠率也有利于玩家,
十點牌和A越多,出現黑杰克的機會越多,也越容易爆牌,玩家“機動靈活”的優勢更有價值, 反之,3,4,5,6等小牌越多,爆牌的可能性越小,對莊家比較有利,索普時代的21點多用1副或2副撲克牌,當牌剛洗好時,賭場占據0.5%左右的概率優勢, 妙處在于,隨著牌局進行,某些時候大牌和A的比例會變高,概率會轉為對玩家有利, 索普戰勝賭場的方法就是:通過計牌估算概率,當形勢有利時下大賭注!
讀者要學會讀文抽象:只有對自己有利的情況下才下注,
既然雙色球藍號概率只有1/16,我們什么時候去買呢?
我們對彩票籃球號碼提取特征,藍號可以分大小號,1-8大號,9-16小號,又可以分奇偶號,號碼大小號和奇偶號出現的概率為1/2,因此根據大數定理,奇號和大號不會持續連出,
假定奇號和大號連出3期,我們藍球可以選擇偶數小號來買,我們只能選2,4,6,8號等4個號,仍然超出我們選擇的范圍,我們再提取特征,余三(即除3的余數,0,1,2),同樣依賴大數定理,同樣的模式出現只有1/3的概率,他們連出就要排排除,
假定我們發現有三期大號,奇數,余三2連出,排除后,我們的選擇只有:4,6號,是不是滿足了我們的要求,
假定前面3期開獎號如下,大號,奇數,余三2連出:
02 03 13 18 20 31, 11
06 10 13 25 26 32, 11
06 09 16 18 22 29, 11
我們藍號選擇只有:4,6號,我們選了這2個號投注,出現獎號“02 03 07 08 17 22, 15”沒有買中,藍15是大號,奇號,余三0,因此根據大數定理排除了藍6,只剩藍4號投注了,
我們再次投注2注藍4,結果開獎“07 09 14 26 30 31, 04”,我們獲利10-4-4=2元,
你會說,哪有那么巧,確實那么巧,上面5期是雙色球2021001-2021005的開獎號,

假如是1/2幾率贏后投注翻倍的游戲,例如比大小,想贏就要采用“馬丁策略”,只壓大或小單向,虧錢后,壓注翻倍,只要本金足夠多,贏1次,就全贏,
如果贏率只有40%的幾率的游戲,本金有限,怎么夠最佳自己投注呢?這就要使用“凱利公式”,
形勢有利時如何下注很需要技巧,押太少了浪費機會,押太多了“犧牲”的風險大增, 什么才是不多不少的合適賭注呢? 1956年,科學家凱利(John Kelly)就此發表了論文,提出了著名的凱利公式,
f* = (bp - q) / b
其中,f* = 投注金額占總資金的比例,p = 獲勝的概率,q = 失敗的概率,q = 1-p,b = 賠率,
例如在輪盤賭中押單個數字,b = 35,押紅黑,b = 1,
凱利公式指明了風險控制的至關重要性:即便是正期望值的游戲也不能押太大的賭注, 從數學上講,押注資金比例超過了凱利值,長期的贏錢速度反而下降, 舉個極端的例子,如果你每手都押上全部資金,那么不管你贏過多少錢,只要輸一次就立刻破產,正所謂:辛辛苦苦幾十年,一夜回到解放前,
投資和投注是一門科學,如同玩游戲,假定你玩帝國時代或者星際爭霸游戲,你打算把游戲中金錢全部造兵,去賭一把去分勝負?還是想造農民來種田挖礦?
把投資看作游戲,你會感覺賺錢很容易,感覺賺錢很容易,是從戰略上來說的,從整體上來說,要輕視它,從每一區域來說,要重視它,虧錢會讓你心痛,任何投資莫過如此,

后面文章,以雙色球為例,介紹如何通過小白量化金融模塊來分析彩票,
我們先用Python爬蟲資料,獲取全部雙色球彩票資料,下面給出雙色球爬蟲代碼,

import requests
from bs4 import BeautifulSoup
# 發起請求
basic_url = 'http://kaijiang.zhcw.com/zhcw/html/ssq/list_1.html'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'
}
response = requests.get(basic_url, headers=headers, timeout=10)
response.encoding = 'utf-8'
htm = response.text
 
# 決議內容
soup = BeautifulSoup(htm, 'html.parser')
 
# 獲取頁數資訊
page = int(soup.find('p', attrs={"class": "pg"}).find_all('strong')[0].text)
 
 

 
url_part = 'http://kaijiang.zhcw.com/zhcw/html/ssq/list'
ssq=''
ssqhm=[]
for i in range(1, page+1):
    url = url_part + '_' + str(i) + '.html'

    res = requests.get(url, headers=headers, timeout=10)
    res.encoding = 'utf-8'
    context = res.text
    soups = BeautifulSoup(context, 'html.parser')
     
    if soups.table is None:
        continue
    elif soups.table:
        table_rows = soups.table.find_all('tr')
        for row_num in range(2, len(table_rows)-1):
            row_tds = table_rows[row_num].find_all('td')
            ems = row_tds[2].find_all('em')
            result = row_tds[0].string +', '+ row_tds[1].string +', '+ems[0].string+' '+ems[1].string+' '+ems[2].string+' '+ems[3].string+' '+ems[4].string+' '+ems[5].string+', '+ems[6].string
            td2 = row_tds[3].find_all('strong')
            ss=td2[0].string
            ss=ss.replace(',','')
            result=result+','+ss
            td3 = row_tds[4].find_all('strong')
            result=result+','+td3[0].string
            td4 = row_tds[5].find_all('strong')
            result=result+','+td4[0].string
            ssq=result+'\n'+ssq
            print(result)

def save_to_file(content):
    with open('ssq.txt', 'w', encoding='utf-8') as f:
        f.write(content + '\n')
        
save_to_file(ssq)

采集結果保存到ssq.txt檔案中了,

2020-12-31, 2020134, 02 09 10 20 22 26, 01,399565532,48,275
2021-01-03, 2021001, 02 03 13 18 20 31, 11,411170524,10,126
2021-01-05, 2021002, 06 10 13 25 26 32, 11,374374440,10,185
2021-01-07, 2021003, 06 09 16 18 22 29, 11,360514540,5,136
2021-01-10, 2021004, 02 03 07 08 17 22, 15,396531778,2,208
2021-01-12, 2021005, 07 09 14 26 30 31, 04,359757108,14,76
2021-01-14, 2021006, 06 08 22 24 25 26, 01,367900704,10,194
2021-01-17, 2021007, 02 04 12 21 25 32, 16,389232822,3,104
2021-01-19, 2021008, 01 05 07 14 18 33, 07,358122646,4,86
2021-01-21, 2021009, 02 04 07 24 25 32, 13,367324734,4,57
2021-01-24, 2021010, 01 04 11 19 32 33, 05,394795416,7,129
2021-01-26, 2021011, 05 10 16 23 27 33, 14,358439884,18,228
2021-01-28, 2021012, 03 06 14 18 20 26, 01,365486356,17,218
2021-01-31, 2021013, 06 09 12 16 27 31, 06,403024326,17,169
2021-02-02, 2021014, 04 15 21 25 29 33, 06,365029152,3,96
2021-02-04, 2021015, 06 14 16 26 28 29, 07,373264066,6,93
2021-02-07, 2021016, 03 08 09 13 15 18, 10,447622614,16,192
2021-02-21, 2021017, 09 15 18 29 32 33, 02,442443732,6,116
2021-02-23, 2021018, 02 08 14 23 25 32, 06,352299530,3,128

我們使用小白量化,必須使用pandas的DataFrame 物件來用仿通達信公式統計分析,一次我們再把ssq.txt檔案改為容易處理的ssq.csv格式,下面給出程式,

import math
import datetime as dt
import pandas as pd  
import numpy  as np
import random

df=pd.read_csv('ssq.txt' , encoding= 'gbk',header=None)
df.rename(columns={0:'date', 1:'qh', 2:'hh',3:'lh',4:'tz',5:'j1',6:'j2'}, inplace = True)
df['h1']=[int(x.strip().split(' ')[0]) for x in df.hh.astype(str)]
df['h2']=[int(x.strip().split(' ')[1]) for x in df.hh.astype(str)]
df['h3']=[int(x.strip().split(' ')[2]) for x in df.hh.astype(str)]
df['h4']=[int(x.strip().split(' ')[3]) for x in df.hh.astype(str)]
df['h5']=[int(x.strip().split(' ')[4]) for x in df.hh.astype(str)]
df['h6']=[int(x.strip().split(' ')[5]) for x in df.hh.astype(str)]
df['sumh']=df['h1']+df['h2']+df['h3']+df['h4']+df['h5']+df['h6']

df.to_csv('ssq.csv' , encoding= 'gbk')
print(df)

處理后的結果如下:

            date       qh                  hh  lh  ...   h4  h5  h6  sumh
0     2003-02-23  2003001   10 11 12 13 26 28  11  ...   13  26  28   100
1     2003-02-27  2003002   04 09 19 20 21 26  12  ...   20  21  26    99
2     2003-03-02  2003003   01 07 10 23 28 32  16  ...   23  28  32   101
3     2003-03-06  2003004   04 06 07 10 13 25   3  ...   10  13  25    65
4     2003-03-09  2003005   04 06 15 17 30 31  16  ...   17  30  31   103
5     2003-03-13  2003006   01 03 10 21 26 27   6  ...   21  26  27    88
6     2003-03-16  2003007   01 09 19 21 23 26   7  ...   21  23  26    99

小白量化彩票模塊演示:

import math
import datetime as dt
import pandas as pd  
import numpy  as np
import HP_cp as hcp   #小白量化彩票模塊

##排列型彩票
print('福彩3D的中獎概率:',1/hcp.cfpl(r=3))
print('福彩3D的全部號碼:\n',hcp.qplh2(m=3))


print('福彩雙色球的中獎號碼總數:',hcp.zh(r=6,n=33)*16)
print('隨機福彩雙色球5注號碼:')
for i in range(5):
    for h in hcp.randhm(r=6,m=33,n=1):
        print(h,end=' ')
    print(' + ',hcp.randone(m=10,n=1))

#獲取本地ssq.csv雙色球資料
df=pd.read_csv('ssq.csv'  , encoding='gbk')
print(df)

程式運行結果:

福彩3D的中獎概率: 0.001
福彩3D的全部號碼:
 ['000', '001', '002', '003', '004', '005', '006', '007', '008', '009', '010', '011', '012', '013', '014', '015', '016', '017', '018', '019', '020', '021', '022'
...
福彩雙色球的中獎號碼總數: 17721088
隨機福彩雙色球5注號碼:
4 10 12 15 25 29  +  7
3 8 13 16 22 23  +  4
2 4 9 13 25 33  +  9
4 11 19 20 26 33  +  10
1 3 7 21 27 28  +  1
      Unnamed: 0        date       qh  ...   h5  h6  sumh
0              0  2003-02-23  2003001  ...   26  28   100
1              1  2003-02-27  2003002  ...   21  26    99
2              2  2003-03-02  2003003  ...   28  32   101
3              3  2003-03-06  2003004  ...   13  25    65

后面文章將介紹彩票特征分析,統計,仿通達信指標分析,深度學習以及過濾和縮水等技術,

請點贊本文,你的鼓勵是我寫作的動力!
請持續關注我的博客,我的進步,就是你的進步!

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/263828.html

標籤:python

上一篇:openpyxl庫中單元格物件.value的用法總結:用python對excel的單元格取值

下一篇:Python串列核心知識點匯總,絕對顛覆你的認知!

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more