青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

由rand7生成rand10以及隨機數(shù)生成方法的討論


問題:rand7能生成1-7的整數(shù)隨機數(shù)。要求利用rand7生成1-10的整數(shù)隨機數(shù)。

總結探討幾種方法,并給出比較。我在最初寫這篇文章的時候,出了一些錯誤,主要的原因是測試的方法不對,因此本文也強調(diào)一下對隨機測試的問題。感慨一下知識的浩瀚和自己的渺小。感謝mingliang1212hpsmouse的幫助。可以參看原帖
 
1.  舍去法

一次rand7運算只能生成7個整數(shù),沒有辦法均勻的映射到10個整數(shù)上。但是運行兩次rand7可以生成49個數(shù)字,如果這49個數(shù)字是均勻分布的,舍去多余的9個,剩下的40個正好可以用模10運算映射到10個整數(shù)上。
代碼1
int i;
do
{
    i 
= 7 * (rand7() - 1+ rand7();  // it is now uniformly random between 1 and 49
while(i > 40);      // it is now uniformly random between 1 and 40
return i % 10 + 1;  // result is now uniformly random between 1 and 10

這個算法做到了從40個數(shù)字均勻映射到1到10,這樣說有些抽象,進一步形象的來說明,考慮如下的種子矩陣:
int seed7[7][7= {
    {
1 , 2 , 3 , 4 , 5 , 6 , 7},
    {
8 , 9 , 101 , 2 , 3 , 4},
    {
5 , 6 , 7 , 8 , 9 , 101},
    {
2 , 3 , 4 , 5 , 6 , 7 , 8},
    {
9 , 101 , 2 , 3 , 4 , 5},
    {
6 , 7 , 8 , 9 , 100 , 0},
    {
0 , 0 , 0 , 0 , 0 , 0 , 0}
};
如果用x=0...6,y=1...7,則變換i=7x+y與矩陣中每個元素位置與(x,y)唯一對應,也就是x選擇行,y選擇列,
如果x和y都是均勻分布,那么這49個位置有相同的被選中的概率=1/49。下面這行代碼實現(xiàn)了這個變換:
= 7 * (rand7() - 1+ rand7();
其中7*(rand7()-1)相當于選擇種子矩陣中的行,第二個rand7相當于選擇列,而最后的模10+1運算,就恰好生成了矩陣中每個元素的值,但是(i>40)這個循環(huán)條件把最后的9個值變?yōu)榱?。因此代碼1等價于在種子矩陣中做選擇

再來看,在這個矩陣中1-10數(shù)字一共出現(xiàn)了40次,每個數(shù)字出現(xiàn)4次,0出現(xiàn)了9次。我們在這個表里篩選,如果選中了0則重新選一次,如果非0則返回結果,那么1-10恰好可以得到平均機會。(更理論也更準確地說,這是一個條件概率。我們看一下在不選0的前提下選擇到1的概率,令B=不選擇零,A=選擇到1,那么 P(A)=4/49,P(B)=40/49. 因為只要選擇到1,B就必然成立,所以P(B|A)=1,令P(A|B)=在不選擇零的前提下選擇到1的概率,則根據(jù)Bayes公式 P(A|B)=P(B|A)*P(A)/P(B)=4/40=1/10. 其他的數(shù)字也都可以得出這個結論,因此,在不選擇0的前提下,1-10的概率都=1/10。)

因此有代碼2:
    int result = 0;
    
while (!result)
        result 
= seed7[rand7() - 1][rand() - 1];
 
    
return result;

顯然,代碼1與代碼2是等價的。我個人更喜歡代碼2,因為快。天下武功,唯堅不催,唯快不破。

舍去法效率的分析

現(xiàn)在看看rand7被調(diào)用的次數(shù)——這主要是由舍去率(或者反過來命中率決定的)。這兩個代碼每生成一個隨機數(shù)調(diào)用rand7的次數(shù)不確定,那么平均調(diào)用了多少次呢?種子矩陣中選擇一次,命中非0的概率有40/49,命中0的概率是9/49,這個過程是一個伯努利實驗,進行n次選取平均(期望值)可以選出n*40/49個非0,因此生成100個非0就需要平均調(diào)用n*40/49>=100次,也就是n=100*49/40=122.5. 生成一個隨機數(shù)需要進行兩次選取,這意味著平均調(diào)用rand7的次數(shù)為2*1.225=2.45次。盡管生成一個隨機數(shù)調(diào)用rand7的次數(shù)并不確定,但是平均調(diào)用不到2.5次,這個效率還是不錯的。
代碼2用7*7的內(nèi)存替換了代碼1的模10運算,犧牲了空間以換來更高的速度。

舍去法還有其他很多種構造方法。網(wǎng)友談論的比較多的是構造rand2+rand5構造,以及rand2+rand14構造。方法如下:

rand2+rand5: 先構造rand2,然后構造rand5,利用如果rand2==1,則返回1-5,如果rand2==2,則返回rand5+5。
rand2+rand7: 先構造rand2,然后構造rand14,利用如果rand2==1,則返回1-7,如果rand2==2,則返回rand7+7。最后再舍去4個數(shù)字,最后得到rand10。

rand2的構造方法,目前我所知道最好的方法是1/7的舍去率:1-7中奇數(shù)多一個,舍去一個奇數(shù),再讓奇數(shù)對應1,偶數(shù)對應2,這樣就得到了rand2。rand7->rand5的舍去率是2/7,rand14->rand10的舍去率是4/14,因此這兩種方法的總舍去率都是1/7+2/7=3/7=0.429. 而代碼1和代碼2做兩次rand7運算,每次的舍去率是9/49,因此總舍去率為18/49=0.367,略優(yōu)于這兩種算法。

2. 直接法——利用rand7做計算

由于舍去法每次調(diào)用rand7的次數(shù)未知,所以希望能夠找到一種直接的方法。當然最直接的方法就是用線性同余這樣的隨機數(shù)生成法直接寫一個,但是這就用不上rand7了,與題意不符合。有人希望用rand7的各種組合計算來完成,比如(rand7+rand7+rand7+...)%10+1或者(rand7*rand7*rand7*...)%10+1,有些計算確實能夠達到很好的均勻度,但卻是近似均勻

從統(tǒng)計學的角度看, 一個rand7就相當于符合均勻分布的隨機變量X1,當n個rand7做運算的時候,相當于X1...Xn是符合均勻分布的邊緣隨機變量,而F(X1, X2,...,Xn)是他們的聯(lián)合分布,這個分布并非是均勻的,甚至很復雜,如果不用窮舉法,幾乎沒有簡便的方法計算每個數(shù)字出現(xiàn)的概率。現(xiàn)在要將多隨機變量的F(X1,X2,...,Xn)映射到1到10的均勻分布,顯然是有一定難度的, 而在本題來說,是不可能的,這是因為:

1) 對rand7的一元運算只能有7種結果,不可能產(chǎn)生10個隨機數(shù)
2) 現(xiàn)在有二元運算(X)可以是加減乘除或者任何函數(shù)任何映射關系,rand7(X)rand7的可能運算方式是7*7種,,n次二元(X)運算后的可能是運算方式是7^(n+1)種,現(xiàn)在要用7^(n+1)種運算過程得到均勻的10種結果,這是不可能的,(因為7^(n+1)不能被10整除),所以只能是近似均勻

下面來看怎樣獲得近似的均勻,
ju136提醒我注意到,其中的一個比較好的方法是:
(rand7()+rand7()+rand7()+rand7()+rand7()+rand7()+rand7()+rand7()+rand7()+rand7())%10+1
他獲得的均勻度非常好,1出現(xiàn)的最多,5出現(xiàn)的最少,但是概率上僅僅相差0.00002,人類的感覺已經(jīng)分辨不出來了。但是這個方法需要調(diào)用10次rand7,效率上差一些。

有人希望用這樣的方法:調(diào)用兩次rand7從而生成一個7進制的數(shù),然后轉換成0-49,剛好是50個數(shù)的均勻分布,再取模10。這個方法貌似可行,可是很遺憾的是,這樣生成的7進制0-66對應到10進制是0-48,而不是49,少了一個數(shù)。

下面這個方法也比較好,(rand7+(rand7+7) +(rand7+14)+...+(rand7+42))%10,這個表達式生成7個隨機數(shù),分別均勻分布在1-7,8-14,...7個區(qū)間,相加之后再做模10運算,映射到0-9這10個數(shù)字。這7^7種運算,統(tǒng)計每個數(shù)字可以得到次數(shù),其中5最高,0最低,但是他們幾率的差僅為0.00041,人的感覺幾乎分辨不出來了。這個方法需要調(diào)用7次rand7,效率比上面的代碼高一些,因此有:
代碼3
    int rand10_7plus()  
    {  
        
return (rand7()+rand7()+rand7()+rand7()+rand7()+rand7()+rand7()+147)%10+1;  
    }

這種直接方法,無論怎樣在理論上都做不到均勻分布,所以,我們要想一些辦法來提高。

3. 直接法——利用組合方法進一步提高

 考慮數(shù)組
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
{6, 5, 4, 3, 2, 1, 10, 9, 8, 7 }

用rand7_plus在第一行中選擇的時候6的機會最大,1的機會最小,但是在第二行選擇的時候1的機會最大,6的機會最小,這兩行有一定的互補性,所以如果輪流選擇這兩行,會得到更均勻的分布,根據(jù)上面的計數(shù)結果,可以得知,最小幾率與最大幾率的差僅為萬分之一。推廣一下,如果在數(shù)組
    int seed10[10][10= {  
        {
1,  2,  3,  4,  5,  6,  7,  8,  9,  10},  
        {
101,  2,  3,  4,  5,  6,  7,  8,  9},  
        {
9,  101,  2,  3,  4,  5,  6,  7,  8 },  
        {
8,  9,  101,  2,  3,  4,  5,  6,  7 },  
        {
7,  8,  9,  101,  2,  3,  4,  5,  6 },  
        {
6,  7,  8,  9,  101,  2,  3,  4,  5 },  
        {
5,  6,  7,  8,  9,  101,  2,  3,  4 },  
        {
4,  5,  6,  7,  8,  9,  101,  2,  3 },  
        {
3,  4,  5,  6,  7,  8,  9,  101,  2 },  
        {
2,  3,  4,  5,  6,  7,  8,  9,  101 },  
    };
之中,依次在每一行用rand10_7plus選擇,由于每個數(shù)字出現(xiàn)的幾率均等,并且在每行和每列上出現(xiàn)的幾率均等,在多次調(diào)用之后就可以得到均勻分布。
代碼4
    unsigned int gi = 0;  
    
int rand10_matrix()  
    {  
        
//用rand10_7plus生成一個數(shù),選擇列  
        int n = rand10_7plus() - 1;  
        
//輪流選擇seed10的行  
        return seed10[gi++ % 10][n];  
    }

如果利用模運算的循環(huán)性質(zhì),就不需要seed10這個矩陣,可以驗證下面的代碼與rand10_matrix是等效的:
代碼5
    unsigned int gi = 0;  
    
int rand10_mod()  
    {  
        
return ((rand10_7plus() - 1+ gi++% 10 + 1;  
    }
這個算法每次調(diào)用7次rand7,做一次模運算,不需要額外的內(nèi)存以及循環(huán),從統(tǒng)計意義上說,已經(jīng)是個比較好的偽隨機數(shù)生成器。

4. 隨機數(shù)測試
最初我在些這個文章的時候,在測試方面出了問題,所以在這里強調(diào)兩點:

1). 隨機度測試,需要每隔10次調(diào)用計數(shù)一次,以驗證每個數(shù)字在各個位置上出現(xiàn)的次數(shù)是均等的。
代碼要與如下類似:
    for (k = 0; k < 100000; k++) {  
        n 
= 0;  
        
for (j = 0; j < 10; j++)  
            n 
= rand10_7plus10();  
      
        result[n 
- 1]++;  
    }
注意result[n - 1]++是在j=0~10這個循環(huán)之外的。

2). 概率計算
在編寫代碼之前,一定要先證明1-10的均勻分布。例如前面10個rand連加的算法,在人的感覺之中已經(jīng)分辨不出來概率的差別了,因此需要仔細統(tǒng)計一下10個數(shù)字,寫一個簡單的10層循環(huán)計數(shù)就可以了。很多朋友忽視了這點,并且,我們上面在第2小節(jié)證明了這是不可能做到均勻的。如果想不清楚或者很難證明你的方法,于是這個最簡單的代碼就非常有用:
    for (i1 = 1; i1 <= 7; i1++)  
    
for (i2 = 1; i2 <= 7; i2++)  
      
    
for (i10 = 1; i10 <= 7; i10++)  
        result[(i1 
+ i2 +  + i10) % 10]++;  

5. 直接法——分布變換與連續(xù)隨機變量的分布——更實際的應用

除了這道題的一些技巧,題目本身在實戰(zhàn)中沒有任何應用,比較實際的問題是,假設一個班的學生成績符合正態(tài)分布,如何模擬生成考試成績。

我們先看如果rand7是1-7的連續(xù)均勻分布,如何獲得1-10的均勻分布。答案很簡單,從幾何的角度上看,我們可以把[a,b]線段上的點按照一對一映射到另一個線段[c,d]上去,只需要做一個線性變換y=(x-a)/(b-a)*(d-c)+c. 那么,若x=rand()~U(a,b),則y=~U(c,d),也就是如果rand()是a到b上的均勻分布,則y=(d-c)(x-a)/(b-a)+c是c到d上的均勻分布。對于本例rand10=(rand()-1)/6*9+1. 下面是證明,更一般的情況同理可證:

另外有一個重要的定理來表明變換之后的分布。這可以處理如Y=X^2, Y=e^X等多種變換。定理如下:

這個定理還可以更強一些,f(x)是分段還是也可以,甚至只是一個覆蓋(包括)就可以了。從符合一種分布的隨機數(shù)生成另外一種分布的隨機數(shù)是統(tǒng)計模擬的課題,其中有非常有趣的變換方法,例如,如果X是(0,1)上的均勻分布,則Y=-a*log(X)是指數(shù)分布。

現(xiàn)在來回答如何按照正態(tài)分布模擬生成一個班的學生成績。這個方法被稱為Box-Muller算法,如果U1和U2服從 (0,1)區(qū)間的均勻分布,做變換R=sqrt(-2*logU1), alpha=2*pi*U2,則X=Rcos(alpha)和Y=Rsin(alpha)是一對獨立的 標準正態(tài)分布n(0,1)。證明從略。按照這個方法,C語言的rand(),可以模擬生成近似的(0,1)均勻分布,只要rand()/MAX_RAND就可以了,做Box-Muller變換到n(0,1),就可以做出符合學生成績分布了,概率統(tǒng)計課的基礎內(nèi)容就有。

6. 其他方法

舍去法也是非常重要的一類隨機,用來生成各種分布的隨機數(shù),另外的方法:比如Metropolis算法,比較著名的還有Markov Chain Monte Carlo (MCMC)算法,這類方法可以看成是一個黑盒子,要求在算法內(nèi)部通過幾次運算很快收斂到一種概率分布,然后返回一個隨機數(shù)。

7. 參考文獻
[2] Kunth第2卷Seminumerical Algorithms, Random Numbers.

posted on 2011-10-09 00:22 畢達哥拉斯半圓 閱讀(6299) 評論(9)  編輯 收藏 引用

評論

# re: 由rand7生成rand10以及隨機數(shù)生成方法的討論[未登錄] 2011-10-08 22:22 leo

任何有ran()+ran()的方法都是不行的,
就像扔2枚骰子,和為2和6的概率是不相同的  回復  更多評論   

# re: 由rand7生成rand10以及隨機數(shù)生成方法的討論 2011-10-09 08:40 hyp

上面1-10每個數(shù)字出現(xiàn)了10次,0出現(xiàn)了9次,我們在這個表里篩選,如果選中了0則重新選一次,如果非0則返回結果。

LZ,這里有筆誤吧,seed7[7][7]的數(shù)組怎么可能1-10每個數(shù)字出現(xiàn)十次?  回復  更多評論   

# re: 由rand7生成rand10以及隨機數(shù)生成方法的討論 2011-10-09 10:38 coolypf

@leo
多加幾次,可以得到正態(tài)分布。  回復  更多評論   

# re: 由rand7生成rand10以及隨機數(shù)生成方法的討論 2011-10-09 10:48 畢達哥拉斯半圓

@hyp
是噠,應是一共出現(xiàn)了40次,每個4次。多謝啦!  回復  更多評論   

# re: 由rand7生成rand10以及隨機數(shù)生成方法的討論 2011-10-09 12:12 畢達哥拉斯半圓

@coolypf
離散均勻分布相加得到的是多項式分布,多元隨機變量。  回復  更多評論   

# re: 由rand7生成rand10以及隨機數(shù)生成方法的討論 2011-10-10 09:11 zzz9413

要站在模塊和設計的思想上,才能得出。我不是唯一正確的,但可以保證正確易于大家理解。
說明:所有隨機數(shù)從1開始,不是從0開始

1:從rand_7到rand_10
小隨機直接產(chǎn)生大隨機難

2:那么從rand_14到rand_10容易
只需要判斷rand_14是否在10以內(nèi),不在則繼續(xù)rand_14直到在10內(nèi),顯然這個數(shù)在10以內(nèi)是均勻的

3,現(xiàn)在構造rand_14
rand_7套rand_2循環(huán)即可,rand_2==1,則返回rand_7。rand_2==2則返回rand_7+7,rand_2由第2步分析非常易得。

4,rand_14到rand_10,由第2步分析即得。
  回復  更多評論   

# re: 由rand7生成rand10以及隨機數(shù)生成方法的討論 2011-10-10 09:13 zzz9413

其他的構造rand_2和rand_5
然后套循環(huán)變成rand_10,都是換湯不換藥,不具有普遍性
  回復  更多評論   

# re: 由rand7生成rand10以及隨機數(shù)生成方法的討論 2011-10-10 09:56 畢達哥拉斯半圓

@zzz9413
這個方法也很好,不過效率可能稍微差一點。rand2最好的實現(xiàn)方法(就我目前所知)是1/7的舍去率,rand14->rand10的舍去率是4/14,這兩步相加就是 6/14的舍去率,將近一半。所以調(diào)用的rand7的次數(shù)也會比較多。 不過這提醒我把這個分析加到正文里去,多謝!  回復  更多評論   

# re: 由rand7生成rand10以及隨機數(shù)生成方法的討論 2011-10-10 10:18 畢達哥拉斯半圓

@zzz9413
我在正文里評估了rand2+rand5和rand2+rand14,請您指點,多謝!  回復  更多評論   

<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

導航

統(tǒng)計

常用鏈接

留言簿(3)

隨筆檔案

相冊

contact

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            蜜桃久久av一区| 一区二区亚洲欧洲国产日韩| 亚洲视频欧美视频| 在线综合亚洲欧美在线视频| 欧美性猛片xxxx免费看久爱| 久久国产精品99国产| 欧美伊人精品成人久久综合97| 在线精品国产欧美| 亚洲欧洲综合| 国产精品日韩欧美一区二区| 久久久午夜视频| 欧美国产视频日韩| 午夜精品国产更新| 久久夜色精品国产亚洲aⅴ| 亚洲人成77777在线观看网| 日韩视频欧美视频| 亚洲国产精品久久人人爱蜜臀| 久久视频在线免费观看| 亚洲午夜电影网| 欧美一区二区三区在线看| 亚洲精品久久久久| 亚洲欧美在线看| 99re热精品| 久久久久久伊人| 亚洲欧美一区二区三区在线| 久久久91精品国产一区二区精品| 亚洲免费av观看| 久久久国产精品一区二区中文| 99av国产精品欲麻豆| 久久国产视频网| 亚洲免费综合| 欧美电影免费| 老巨人导航500精品| 国产精品va在线| 亚洲国产一区二区三区a毛片| 国产精品综合av一区二区国产馆| 亚洲狠狠丁香婷婷综合久久久| 国产一区二区三区久久久| 一区二区精品在线| 亚洲日本一区二区| 久久麻豆一区二区| 久久久久国产精品一区| 国产精品户外野外| 亚洲另类自拍| 亚洲精品综合在线| 久久人91精品久久久久久不卡| 欧美一区高清| 国产精品久久77777| 亚洲日韩欧美一区二区在线| 亚洲国产第一| 久久裸体视频| 美女精品在线| 伊人精品久久久久7777| 欧美一区二区三区日韩视频| 小处雏高清一区二区三区 | 久久久久九九视频| 国产精品午夜春色av| 宅男噜噜噜66一区二区| 夜夜精品视频一区二区| 欧美精品久久久久久久| 欧美激情一区三区| 亚洲品质自拍| 欧美黑人多人双交| 亚洲欧洲一区二区天堂久久| 亚洲精品国产欧美| 欧美精品一区在线| 亚洲精品之草原avav久久| 一区二区三区欧美视频| 欧美日韩免费观看一区二区三区 | 亚洲欧美在线高清| 国产精品视频一区二区三区| 亚洲一区二区三区涩| 欧美一区二区国产| 国产综合18久久久久久| 久久久久九九视频| 亚洲激情在线观看| 亚洲永久免费观看| 国产日韩精品视频一区二区三区| 久久岛国电影| 亚洲电影成人| 欧美精品一区二| 亚洲午夜电影网| 国产精品视频免费观看| 亚洲欧美国产77777| 久久久青草青青国产亚洲免观| 影音欧美亚洲| 欧美日韩国产123| 亚洲欧美日韩国产综合| 免费亚洲电影| 一区二区三区视频在线| 国产欧美欧美| 女同一区二区| 亚洲一区二区三区四区五区黄| 久久精品国产免费看久久精品| 在线日韩av| 欧美新色视频| 美女久久一区| 亚洲在线播放电影| 亚洲国产精品毛片| 欧美在线资源| 9l视频自拍蝌蚪9l视频成人| 国产欧美精品在线播放| 欧美激情一区二区三区成人| 亚洲欧美另类在线| 亚洲国产你懂的| 久久久青草青青国产亚洲免观| 99re这里只有精品6| 激情国产一区| 国产精品久久久久国产a级| 免费日本视频一区| 性8sex亚洲区入口| 在线亚洲美日韩| 亚洲黄一区二区| 久久在线播放| 新67194成人永久网站| 日韩亚洲不卡在线| 一区视频在线播放| 国产精品影院在线观看| 欧美日本韩国在线| 欧美不卡视频一区发布| 欧美在线观看日本一区| 一区二区日韩伦理片| 亚洲国产日韩精品| 欧美福利一区二区| 久久综合色影院| 久久久精品欧美丰满| 亚洲欧美一区二区在线观看| 日韩网站在线观看| 亚洲激情av在线| 亚洲国产成人在线播放| 在线观看一区欧美| 激情欧美丁香| 在线观看精品| 在线观看不卡av| 亚洲成人资源网| 在线看国产一区| 好吊日精品视频| 红桃视频一区| 一区二区视频免费在线观看| 国内精品视频在线播放| 国内免费精品永久在线视频| 国产一区二区在线免费观看| 国产欧美日韩免费看aⅴ视频| 国产精品嫩草99av在线| 国产精品一卡二| 国产欧美日韩综合精品二区| 国产欧美一区二区三区在线看蜜臀 | 亚洲免费成人av电影| 亚洲国产精品激情在线观看| 亚洲缚视频在线观看| 亚洲高清视频的网址| 亚洲精品在线免费观看视频| 99这里只有久久精品视频| 久久人人97超碰国产公开结果| 欧美 日韩 国产一区二区在线视频| 久久人人精品| 欧美aⅴ一区二区三区视频| 欧美国产高潮xxxx1819| 亚洲国产欧美一区二区三区同亚洲| 亚洲国产精品久久久久久女王| 亚洲精品一区二区三区四区高清 | 美女免费视频一区| 亚洲高清在线观看一区| 一区二区三区高清在线| 午夜精品在线视频| 卡通动漫国产精品| 欧美人牲a欧美精品| 国产女精品视频网站免费| 好看的日韩视频| 日韩亚洲欧美在线观看| 欧美一级在线播放| 美日韩精品免费| 亚洲精品日本| 欧美一级久久久| 欧美激情综合在线| 国产偷国产偷精品高清尤物| 亚洲高清在线| 午夜精品福利一区二区蜜股av| 卡一卡二国产精品| 一区二区三欧美| 另类亚洲自拍| 国产精品久久久久久av福利软件| 极品裸体白嫩激情啪啪国产精品| 99re热这里只有精品免费视频| 欧美在线视频免费| 亚洲精品一区二区三区99| 久久狠狠婷婷| 国产精品系列在线播放| 亚洲美女电影在线| 乱人伦精品视频在线观看| 亚洲午夜久久久| 欧美精品二区三区四区免费看视频| 国产欧美一区二区白浆黑人| 中文有码久久| 亚洲电影免费观看高清| 久久精品30| 国产日韩欧美精品综合| 亚洲自拍三区| 亚洲美女av网站| 欧美久久久久|