精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Java ME中的Math.pow()方法使用詳解

開發 后端
本文向您介紹Java ME中的Math.pow()方法,包括使用Math.pow()產生整數解、使用幾何衰變算法作為強力解的ME Math.pow()等。

使用 Java 開發移動設備應用程序時,可能需要用到特定 Java VM 所沒有的數學方法。本文將專門解決 Java ME 沒有“冪”方法 Math.pow() 的問題。我們將演示使用三種不同的方法開發同一個 ME 應用程序,并從中選出***的編程解決方案。

要討論此問題,我們先考察整數和分數冪參數,將我們的分析限于正實數。我們將演示求整數問題和小數問題的解集相對而言比較容易(而不考慮指數的符號)。在大多數情況下,我們將使用示例問題 n = 82/3,其中我們會求出 n 的良好估計或實際解。如果初始指數事先不可用,則此問題的其他解(包括牛頓法和割線法)不易編程。雖然二分法是可行的解決方案,但我們將關注傳統上不為人所探究的三個方法。***個是簡單的(不過有時效率低下)幾何衰變算法;而第二個方法將利用 Math.sqrt() 方法并保證在不超過 11 次迭代中收斂到一個近似解。第三個方法將使用泰勒級數逼近法求對數并對泰勒級數進行歐拉轉換。

產生整數解的 ME Math.pow() 方法

傳統上,Java Math.pow() 方法包含兩個參數。這兩個參數包括底數和指數。我們假定(最初)這兩個參數均為整數,然后求出 ME 中與 Java 方法使用相同參數的 Math.pow() 方法的可編程解。此處,可編程解相當簡單,如示例 1 所示。在本例中,我們僅運行以指數值為指標的倍乘循環。

示例 1

  1. int pow( int x, int y) /*we define the power method with  
  2.     base x and power y (i.e., x^y)*/ 
  3. {  
  4.   int z = x;  
  5.   forint i = 1; i < y; i++ )z *= x;  
  6.   return 
  7. }  

當然,有人可能會發現需要求出非整數冪的值。正實數的簡單解(無需訪問 Math.pow() 方法)可能涉及使用 Math.log()。例如,請考慮 82/3 的情況。利用 2/3*ln(8) = 1.386294361 中自然對數的結果。要得到最終解,需要利用指數 1.386294361(特別指出 e1.386294361 = 4)。在這種情況下,可能不需要使用冪函數。遺憾的是,Java ME 也不支持 Math.log() 方法。沒有 Math.pow() 或 Math.log() 方法時,我們會考慮使用樸素的“強力”試探性方法,應用 Math.sqrt() 方法以及自然對數(和歐拉 e)的泰勒級數逼近來求得 Java ME 問題的解。

使用幾何衰變算法作為強力解的 ME Math.pow()

Java ME 的早期實現包括浮點主數據類型 float 和 double。最近,已添加了這些類型。現在我們將 Math.pow() 聲明中的整型參數替換為 double 數據類型。

可能需要在 Java ME Math.pow() 冪方法中使用小數指數。我們提供的生成 Math.pow() 的***種方法是使用幾何衰變算法的樸素的“強力”試探性方法。簡單而言,衰變算法以一個大于已知解的值開始,然后應用某個方法來衰變該值,直到該值非常逼近該解(有關簡單線性衰變算法的演示,請參見示例 2)。在我們的例子中,將進一步演示向上述解收斂的幾何形式。

示例 2

  1. /* This example illustrates a simplistic decay algorithm that we will assume  
  2. converges to our desired solution (a positive integer) */ 
  3. int n; // assume that n is the solution to the number we are trying to find  
  4. int varX = 1000; //assume that we know the solution is less than or equal to 1000  
  5. while( varX > 0 )  
  6. {  
  7.   varX -= 1// decrement by 1  
  8.   if( varX == n)return varX;  

在示例 2 中,我們從 1000 開始遞減,直到找到預期的數字,假定預期數字是一個正整數。這種類型的算法構成了強力試探性方法的基礎。

使用類似的方法,我們可在遇到小數時應用此算法。假定我們需要求出 n 的值,其中 n = 82/3。要使用衰變算法,我們必須首先找到一個合適的起點,該點要等于或大于解本身。這對于帶有正指數的正實數很容易做到。對于我們的示例,要對此解進行編程,對方法兩邊求立方,得到 n3=82 。當然,此方程與 n3=64 等效。之后,我們的起始值將變為 64,我們知道 n 必須小于 64(因為 n3 = 64)。注意,如果限于正實數,則此推導方法同樣適用于任何正指數值。現在,我們可能需要設計一個循環來產生 n 的“充分接近”預期數字的解。我們再來看示例 3,它適合于所有正底數和正指數。

示例 3

  1. double pow( double x, double y ) //we define our new power method for fractions  
  2. {  
  3.   int den = 1000// specify arbitrary denominator  
  4.   int num = (int)(y*den); // find numerator  
  5.   int s = (num/den)+1;  
  6.   /***********************************************************************  
  7.   ** Variable 's' provides the power for which we multiply the base to find  
  8.   ** our starting search value. For example, if we seek a solution for  
  9.   ** n = 8^(2/3), then we will use 8^2 or 64 as our starting value (which is  
  10.   ** generated in our next section of code.) Why? The solution for our  
  11.   ** problem (given that the base is positive) will always be less than or  
  12.   ** equal to the base times the numerator power.  
  13.   ************************************************************************/ 
  14.   /***********************************************************************  
  15.   ** Because we set the denominator to an arbitrary high value,  
  16.   ** we must attempt to reduce the fraction. In the example below,  
  17.   ** we find the highest allowable fraction that we can use without  
  18.   ** exceeding the limitation of our primitive data types.  
  19.   ************************************************************************/ 
  20.   double z = Double.MAX_VALUE;  
  21.   while( z >= Double.MAX_VALUE )  
  22.   {  
  23.     den -=1// decrement denominator  
  24.     num = (int)(y*den); // find numerator  
  25.     s = (num/den)+1// adjust starting value  
  26.     // find value of our base number to the power of numerator  
  27.     z = x;  
  28.     forint i = 1; i < num; i++ )z *= x;  
  29.   }  
  30.   /***********************************************************************  
  31.   ** Now we are going to implement the decay algorithm to find  
  32.   ** the value of 'n'.  
  33.   ************************************************************************/ 
  34.   /***********************************************************************  
  35.   ** We now find 'n' to the power of 's'. We will then decrement 'n',  
  36.   ** finding the value of 'n' to the power of the denominator. This  
  37.   ** value, variable 'a', will be compared to 'z'. If the 'a' is nearly  
  38.   ** equal to 'z', then we will return 'n', our desired result.  
  39.   ************************************************************************/ 
  40.   double n = x; // We define 'n' as our return value (estimate) for 'x'.  
  41.   // find 'n' to the power of 's'.  
  42.   forint i = 1; i < s; i++)n *= x;  
  43.   // Begin decay loop  
  44.   while( n > 0 )  
  45.   {  
  46.     double a = n; //proxy for n  
  47.     // find 'a', the value of 'n' to the power of denominator  
  48.     forint i = 1; i < den; i++ )a *= n;  
  49.     // compare 'a' to 'z'. Is the value within the hundred-thousandth?  
  50.     // if so, return 'n'.  
  51.     double check1 = a-z;  
  52.     double check2 = z-a;  
  53.     if( check1 < .00001|| check2 > .00001 ) return n;  
  54.     n *= .999;// We arbitrarily use a decay of .1% per iteration  
  55.   }  
  56.   // value could not be found, return -1.  
  57.   return -1.0;  

本示例演示了衰變算法的使用方法。您會注意到,n 的值(解的估計值)將按 1% 強制遞減。您可能需要根據編程精度要求來改變此值。也可能考慮包括編程邏輯,該邏輯用于將前一迭代解與當前迭代進行比較,然后,如果有改善繼續進行迭代,但是,如果解已回歸,則返回前一個值。

這里講述的解只處理正指數。如果值為負會出現什么情況呢?下面我們將解決這種意外情況。

處理負指數

要再增加一層復雜度,假定正在向 Math.pow() 方法傳遞負指數。在這種情況下,指數為負,一種簡單的解決方案是將底數轉換為小數,使指數為正。例如,8-2 可轉換為 (1/8)2。我們以可編程的方式用底數 x 來除 1,用 -1 來乘 y(參見示例 6)。

示例 6

  1. if( y < 0 )  
  2. {  
  3.   x = (1/x); // convert base number to fraction  
  4.   y *= -1// make exponent positive  

現在,我們已經討論了用于在 Java ME 中估計冪函數的“強力”幾何衰變算法。讀者會注意到,對于較大的底數和指數分子組合,樸素的“強力”試探性方法有性能問題。請考慮示例 85/2。使用此算法的起始值將為 85 = 32,768。如果使用 1% 的衰變,則要求全部 5196 次迭代都求該解,這樣幾乎達不到***。謹記此事實并且不提供改善的試探性搜索算法,我們轉到二次逼近,這會提供更多合理的迭代要求。#p#

使用 Math.sqrt() 方法的 ME Math.pow()

開發我們的 Math.pow() 方法的第二種方法是通過使用 Math.sqrt() 方法(參見示例 7)。使用Math.sqrt() 方法要求我們對具有偶分母的冪進行估計。例如,n = 82/3 => n3 = 82 是一個棘手問題,因為我們需要立方根,而非平方根。為了調整示例中的此問題,我們我們就對兩端再求一次平方:n3 = 82 => n6 = 84。然后,我們就可以繼續進行,恰好在兩次迭代之內求出解。

當然,我們的 ME Math.pow() 方法的指數不會以分子和分母的形式開始,而是向我們傳遞一個實數。我們將此實數轉換為具有偶分母的小數,然后利用相應的平方根數來對
n 求解。在我們的 n = 82/3 示例中,我們進行如下轉換:
n = 82/3 => n = 8683/1024 => n1024 = 8683
我們選擇 1024 作為分母,因為對平方根函數迭代 10 次將得到 n 的值。特別指出,(n1024)(1/(2^10)) = n。當然,我們可能需要根據方程右側的大小來減少迭代次數。示例 7 演示了這種方法。

示例 7

  1. ouble pow(double x, double y)  
  2. {       
  3.   //Convert the real power to a fractional form  
  4.   int den = 1024//declare the denominator to be 1024  
  5.   /*Conveniently 2^10=1024, so taking the square root 10  
  6.   times will yield our estimate for n. In our example  
  7.   n^3=8^2  n^1024 = 8^683.*/ 
  8.   int num = (int)(y*den); // declare numerator  
  9.   int iterations = 10; /*declare the number of square root  
  10.     iterations associated with our denominator, 1024.*/ 
  11.   double n = Double.MAX_VALUE; /* we initialize our      
  12.     estimate, setting it to max*/ 
  13.   while( n >= Double.MAX_VALUE && iterations > 1)  
  14.   {  
  15.     /* We try to set our estimate equal to the right  
  16.     hand side of the equation (e.g., 8^2048). If this  
  17.     number is too large, we will have to rescale. */ 
  18.     n = x;  
  19.     forint i=1; i < num; i++ )n*=x;  
  20.     /*here, we handle the condition where our starting  
  21.     point is too large*/ 
  22.     if( n >= Double.MAX_VALUE )  
  23.     {  
  24.       iterations--; /*reduce the iterations by one*/ 
  25.       den = (int)(den / 2); /*redefine the denominator*/ 
  26.       num = (int)(y*den); //redefine the numerator  
  27.     }  
  28.   }  
  29.   /*************************************************  
  30.   ** We now have an appropriately sized right-hand-side.  
  31.   ** Starting with this estimate for n, we proceed.  
  32.   **************************************************/ 
  33.   forint i = 0; i < iterations; i++ )  
  34.   {  
  35.     n = Math.sqrt(n);  
  36.   }  
  37.   // Return our estimate  
  38.   return n;  

自然對數和歐拉 e 的泰勒級數逼近

對于正實數產生 Math.pow() 方法最簡便的方式之一是鏈接幾個方法,包括使用 泰勒級數。假定我們需要冪 y = xb。該式與 ln(y) = b*ln(x) 等價。進而,我們可以使用泰勒級數擴展估算 x 的自然對數,如下所示。

  1. ln(x) = (x-1) –(x-1)2/2 + (x-1)3/3 - (x-1)4/4….if |x-1|<=1 OR  
  2. ln(x) = 1/(x/(x-1)) + 1/(x/(x-1))2 + 1/(x/(x-1))3… if |x|>1 

由于 x 為正,因而 x 的整個域為這些方程所覆蓋。此交錯級數可以提供對底數對數的非常接近的逼近。用指數乘以此對數將得到 ln(y),方程的右側 ln(y)=b*ln(x)。現在,我們僅需求出 eln(y) 即可完成運算。我們使用另一個泰勒級數擴展來完成此過程:ex = 1 + x + x2 / 2! + x3 / 3! + … 使用這兩個公式,即可求得問題的解,如示例 8 所示。

示例 8

  1. double pow(double a, double b)  
  2. {  
  3.   // true if base is greater than 1  
  4.   boolean gt1 = (Math.sqrt((a-1)*(a-1)) <= 1)? false:true;  
  5.   int oc = -1// used to alternate math symbol (+,-)  
  6.   int iter = 20// number of iterations  
  7.   double p, x, x2, sumX, sumY;  
  8.   // is exponent a whole number?  
  9.   if( (b-Math.floor(b)) == 0 )  
  10.   {  
  11.     // return base^exponent  
  12.     p = a;  
  13.     forint i = 1; i < b; i++ )p *= a;  
  14.     return p;  
  15.   }  
  16.   x = (gt1)?  
  17.       (a /(a-1)): // base is greater than 1  
  18.       (a-1); // base is 1 or less  
  19.   sumX = (gt1)?  
  20.       (1/x): // base is greater than 1  
  21.       x; // base is 1 or less  
  22.   forint i = 2; i < iter; i++ )  
  23.   {  
  24.     // find x^iteration  
  25.     p = x;  
  26.     forint j = 1; j < i; j++)p *= x;  
  27.     double xTemp = (gt1)?  
  28.         (1/(i*p)): // base is greater than 1  
  29.         (p/i); // base is 1 or less  
  30.     sumX = (gt1)?  
  31.         (sumX+xTemp): // base is greater than 1  
  32.         (sumX+(xTemp*oc)); // base is 1 or less  
  33.     oc *= -1// change math symbol (+,-)  
  34.   }  
  35.   x2 = b * sumX;  
  36.   sumY = 1+x2; // our estimate  
  37.   forint i = 2; i <= iter; i++ )  
  38.   {  
  39.     // find x2^iteration  
  40.     p = x2;  
  41.     forint j = 1; j < i; j++)p *= x2;  
  42.     // multiply iterations (ex: 3 iterations = 3*2*1)  
  43.     int yTemp = 2;  
  44.     forint j = i; j > 2; j-- )yTemp *= j;  
  45.     // add to estimate (ex: 3rd iteration => (x2^3)/(3*2*1) )  
  46.     sumY += p/yTemp;  
  47.   }  
  48.   return sumY; // return our estimate  

幾乎在所有情況下,由泰勒級數逼近返回的估計比衰變算法方法更為精確,而 Math.sqrt() 也可以產生更好的結果。泰勒級數方法所使用的計算周期較少, 但在值趨于 0 時會不穩定。Math.sqrt() 結果可以提供良好的逼近,通常到第三位數字。有關使用多個任意分配的正實型變量的方法的比較,請參見表 1。我們可以看到,對于實際應用, Math.sqrt() 或泰勒級數方法對于是大多數值都比較優良。

表 1:衰變算法和平方根方法的比較

底數,指數 實際結果 泰勒級數逼近 Math.sqrt() 估計值 衰變算法估計值

8.0, 0.75 4.75682846 4.7423353221144557 4.75682846 4.751286816
8.0, 0.667 4.002774 3.9919355054959973 3.994588452 3.994453662
16.0, 8.0 4294967296 4294967296 4294967296 4294752931
32.0, 5.0 33554432 33554432 33554432 33553177.47
11.0, 3.0 1331 1331 1331 1330.967224
10.0, 10.0 10000000000 10000000000 10000000000 9999699608
77.0, 3.0 456533 456533 456533 456527.6254
5.0, 15.0 30517578125 30517578125 30517578125 30516279235
15.0, 9.0 38443359375 38443359375 38443359375 38440083836
3.0, 21.0 10460353203 10460353203 10460353203 10459907131
5.0, 0.05 1.083798387 1.0837883791740017 1.083457755 1.08205432
7.0, 0.37 2.054406 2.0529191207908064 2.050973357 2.051043668
1.5, 0.789 1.377006542 1.377006541546755 1.376496289 1.376798426
1.5, 3.789 4.647397078 4.647381683179335 4.64015972 4.644836289
0.06282, 0.325784 0.405919146 0.41327102396968585 0 0.06282
0.7261, 0.20574 0.936270645 0.9362706445348806 0.93646901 0.7261
0.903272, 0.48593 0.951767579 0.951767579257642 0.951823588 0.903272
0.821111, 0.767392 0.85963221 0.8596322100794738 0.859766145 0.821111
0.24352, .004322 0.99391353 0.9939136545397182 0.994497397 0.24352
0.000125, .99556 0.000130089 627097113.1963351 0 0.000125

編程注意事項和結論

本文已經解決了在 Java ME 中開發 Math.pow() 方法的三種途徑。雖然樸素的“強力”幾何衰變試探性方法比較不錯,而且對于小問題可能很有用處,但是 Math.sqrt() 改寫對于大多數范圍的應用可能要好一些。***方法可能是泰勒級數逼近。顯然,這三個示例均未包括完成該任務的特有方法(如二分法及參考資料中介紹的其他方法),并且我們希望其他方法可以提供占用較少資源的更為高效的技巧。***需要注意的一點是:如果要求您開發此類方法,務必考慮其應用,所需的參數以及預期的結果和精度。

 

【編輯推薦】

  1. 碰撞檢測算法在Java ME中的實現
  2. Java ME多模搜索技術初探
  3. 淺談Java SE、Java EE、Java ME三者的區別
  4. 如何解決Java ME設備碎片問題
  5. Java ME平臺中的URLEncoder實現類
責任編輯:佚名 來源: IT168
相關推薦

2009-06-17 11:27:00

setClip方法J2ME

2016-09-18 16:58:09

JavaProperties

2010-09-30 12:53:00

J2MECSS

2010-10-09 10:30:03

JS event

2011-08-29 15:10:19

JAVALua 腳本

2021-04-13 09:20:21

JavaUnsafejava8

2019-11-07 23:48:12

shell腳本getopts

2009-06-29 17:57:30

ApplicationJSP

2022-09-14 08:00:00

區塊鏈加密貨幣挖礦

2015-06-08 09:05:10

Java原型模式

2025-08-06 06:35:00

JVM方法區開發

2009-06-08 20:07:44

Eclipse中使用p

2023-06-28 08:34:02

Bind()函數JavaScript

2010-09-29 10:41:18

J2MEJVM

2010-09-29 16:20:06

J2MEWeb服務API

2012-05-10 10:53:10

Linuxhistory

2009-12-02 16:04:44

PHP fsockop

2009-03-04 13:10:41

SQL語句INSERTDELETE

2010-01-28 10:31:32

Android使用SD

2011-03-28 09:35:06

iBaitsSqlMapClien
點贊
收藏

51CTO技術棧公眾號

亚洲大胆在线| 福利在线一区| 亚洲精品欧美激情| 91久久久一线二线三线品牌| 亚洲黄色一区二区| 精品一区二区三| 日韩精品一区二区三区蜜臀| 99999精品视频| 麻豆影视国产在线观看| 成人国产电影网| 国产欧美韩国高清| 日本三级小视频| 91精品精品| 亚洲欧美在线看| 色哟哟网站在线观看| 性欧美hd调教| 亚洲国产欧美日韩另类综合 | 国产精品日韩精品欧美在线| 51国偷自产一区二区三区的来源| 一级黄色大片视频| 激情五月***国产精品| 色悠悠国产精品| 黄色正能量网站| 亚洲精品在线国产| 欧美福利视频一区| 五月婷婷深爱五月| 忘忧草在线日韩www影院| 一区二区三区免费| 这里只有精品66| 国产免费永久在线观看| 菠萝蜜视频在线观看一区| 91亚洲精品久久久久久久久久久久| 久久久久久久黄色片| 欧美先锋影音| 萌白酱国产一区二区| 黄大色黄女片18免费| 色综合综合网| 亚洲摸下面视频| 午夜视频在线观看国产| 中文字幕区一区二区三| 欧美一二三区在线| 色姑娘综合天天| 爱情电影网av一区二区| 欧美日本精品一区二区三区| 亚洲精品视频导航| 国产麻豆一区| 欧美日韩成人在线一区| 色噜噜狠狠一区二区| 欧美精品总汇| 欧美在线free| 成年网站在线播放| 99久久伊人| 欧美日韩性生活| 日韩av在线中文| 另类一区二区三区| 欧美日韩三级一区二区| 亚洲免费av一区| 免费一区二区三区四区| 欧美日韩国产综合视频在线观看| 在线观看国产中文字幕| 日韩av黄色| 日韩视频一区二区三区| 中文字幕一二三区| 成人自拍在线| 亚洲精品自拍第一页| 欧美丰满少妇人妻精品| 欧美日韩精品在线一区| 久久精品国产欧美激情| 久热这里有精品| 亚洲视频福利| 欧美亚洲日本网站| 中文字幕在线观看视频一区| 国内精品久久久久影院色| 91沈先生播放一区二区| 日本波多野结衣在线| 26uuu久久天堂性欧美| 日韩精品在在线一区二区中文| 福利在线播放| 亚洲男帅同性gay1069| 日韩成人三级视频| 欧美二三四区| 欧美一级xxx| 中文字幕一区二区三区人妻不卡| 日韩三级av| 日韩在线观看你懂的| 久久久香蕉视频| 久久久久国产精品一区三寸| 国产欧美日韩高清| 日本免费网站在线观看| 国产三级精品三级| 少妇大叫太大太粗太爽了a片小说| 密臀av在线播放| 欧美二区三区的天堂| 亚州av综合色区无码一区| 欧美色图在线播放| 久久久久久久久久久免费| 姑娘第5集在线观看免费好剧| 国产成人三级在线观看| 欧美日韩一区二区三| 黄色网在线免费看| 欧美性猛交xxxx免费看久久久| 日本一二区免费| 日韩成人动漫在线观看| 美女av一区二区| 免费视频网站在线观看入口| 国产激情视频一区二区在线观看| 欧美日韩精品免费看| 午夜av在线播放| 欧美视频一区二区三区在线观看| 国内自拍偷拍视频| 99久久精品网| 国产成人精品在线观看| 日本国产在线观看| 亚洲免费毛片网站| 亚洲综合欧美在线| 国产精品密蕾丝视频下载| 欧美激情视频在线观看| 亚洲天堂男人网| 91麻豆文化传媒在线观看| www.日本在线视频| 国产精品成人3p一区二区三区 | av在线免费播放网站| 性久久久久久久久| 免费网站在线观看黄| 日韩不卡一区| 国产国语videosex另类| 日本一级在线观看| 婷婷久久综合九色综合绿巨人| 制服下的诱惑暮生| 亚洲啊v在线观看| 国产日韩在线视频| 成人精品一区二区三区校园激情| 大桥未久av一区二区三区| 成人欧美精品一区二区| 中文字幕一区二区精品区| 成人黄色免费片| 69久久夜色| 欧美人与z0zoxxxx视频| 能直接看的av| 青青草97国产精品免费观看无弹窗版| 久久久久久国产精品mv| 欧美日韩国产观看视频| 亚洲激情自拍图| 中文字幕一区二区三区手机版 | 久久一区二区三区av| 国产理论电影在线| 精品美女在线播放| 久久一区二区三| 成人av手机在线观看| 欧美性潮喷xxxxx免费视频看| 99ri日韩精品视频| 高清一区二区三区日本久| 国产综合视频在线| 欧美日韩另类视频| 国产精品久久久久无码av色戒| 亚洲一区日韩在线| 日韩av在线一区二区三区| 国产91亚洲精品久久久| 不卡av在线播放| 性一交一乱一伧老太| 亚洲国产成人porn| 亚洲a v网站| 蓝色福利精品导航| 97久久国产亚洲精品超碰热| 99精品国产高清一区二区麻豆| 国内精品一区二区三区| 男女污污视频在线观看| 欧美日韩国产一级片| 一区二区视频免费看| 成人av在线网| 国产精品第12页| 外国成人免费视频| 国产精品v欧美精品∨日韩| 97成人资源| 日韩在线观看av| 嫩草影院一区二区| 91精品办公室少妇高潮对白| 日韩精品123区| 播五月开心婷婷综合| 国产精品久久久久9999小说| 日韩久久电影| www.成人av.com| 偷拍精品精品一区二区三区| 久久综合色影院| 四虎精品成人影院观看地址| 欧美日韩亚洲综合在线| 久久精品无码人妻| 中文字幕精品在线不卡| 午夜影院福利社| 蜜臂av日日欢夜夜爽一区| 久久手机在线视频| 精品国产欧美日韩| 超碰97在线播放| 日本在线视频一区二区| 欧美激情综合色综合啪啪五月| 国产精品ⅴa有声小说| 日韩欧美一区二区久久婷婷| 六月丁香激情综合| 一区二区三区国产豹纹内裤在线 | 亚洲日本青草视频在线怡红院 | 欧美最猛性xxxxx(亚洲精品)| 日本在线天堂| 亚洲毛茸茸少妇高潮呻吟| 国产欧美第一页| 日本黄色一区二区| 日本一区二区不卡在线| 亚洲日本护士毛茸茸| 中文字幕在线1| 成人精品视频一区| 欧美视频国产视频| 蜜臀av在线播放一区二区三区| av日韩一区二区三区| 91九色精品| 日韩免费毛片| 亚洲日本三级| 国产原创精品| 91大神精品| 亚洲一区二区三区xxx视频| 国产一区二区三区朝在线观看| 国模吧一区二区三区| 91精品国产91久久久久久青草| 在线视频日本亚洲性| 日本午夜在线视频| 亚洲精品国产精品乱码不99按摩| av中文字幕第一页| 欧美精三区欧美精三区| 中文字幕一区二区久久人妻| 色狠狠桃花综合| 日本中文字幕久久| 欧美午夜xxx| 亚欧洲精品在线视频| 亚洲自拍与偷拍| 欧美成人精品欧美一| 亚洲视频1区2区| 欧美性x x x| 亚洲免费电影在线| 免费国产羞羞网站美图| 国产精品传媒在线| 久久久精品少妇| 国产精品久久久久精k8| 后入内射无码人妻一区| 国产精品天天摸av网| 久久一级免费视频| 中文字幕一区二区三区乱码在线 | 欧美性感美女h网站在线观看免费 欧美性xxxx在线播放 | 精品久久亚洲| 91视频国产高清| 激情视频亚洲| 成人欧美一区二区三区在线观看| 日韩视频一二区| 国产精品国产精品国产专区蜜臀ah| 亚洲免费一区三区| 国产二区一区| 群体交乱之放荡娇妻一区二区| 精品中文字幕一区| 九九热精品视频在线观看| 色综合视频二区偷拍在线| 日韩精品免费| 久久视频免费在线| 亚洲国产专区| 久草精品在线播放| 久久99精品久久久久久国产越南 | 国产丝袜美腿一区二区三区| 欧美三级视频网站| 亚洲视频精选在线| 国产无遮挡免费视频| 日韩欧美亚洲综合| 亚洲一区中文字幕在线| 日韩一区二区三区免费看| 免费看黄色一级视频| 精品网站999www| 色老头视频在线观看| 欧美韩国理论所午夜片917电影| 欧美男人天堂| 成人女保姆的销魂服务| 亚洲专区**| 日本公妇乱淫免费视频一区三区| 色乱码一区二区三区网站| 国产成人在线小视频| 首页综合国产亚洲丝袜| 国产传媒免费观看| 成人av免费观看| 激情五月深爱五月| 亚洲图片欧美一区| 国产裸体美女永久免费无遮挡| 欧美一区二区三区日韩视频| 五月天激情开心网| 俺去啦;欧美日韩| 涩涩在线视频| 91中文在线视频| 怕怕欧美视频免费大全| youjizz.com在线观看| 日韩在线一区二区| 911亚洲精选| 国产精品日韩成人| 午夜精品久久久久久久久久久久久蜜桃| 在线看不卡av| 日韩一级片免费在线观看| 色噜噜狠狠狠综合曰曰曰88av| 成人在线免费观看黄色| 国产精品久久色| 日韩动漫一区| 欧美 日韩 国产精品| 蜜桃av一区二区| 亚洲人人夜夜澡人人爽| 夜夜夜精品看看| 在线观看一二三区| 亚洲欧美三级伦理| xxxx成人| 亚洲最大av在线| 欧美hentaied在线观看| 久草资源站在线观看| 丁香亚洲综合激情啪啪综合| 可以免费看av的网址| 色狠狠av一区二区三区| 亚洲av片一区二区三区| 九九久久综合网站| 国产精品日本一区二区不卡视频 | 国产精品免费小视频| 精品午夜电影| 青草全福视在线| 久热成人在线视频| 亚洲一级黄色录像| 色噜噜狠狠一区二区三区果冻| 色综合成人av| 高清亚洲成在人网站天堂| 欧美区一区二区| 好色先生视频污| 黑人巨大精品欧美黑白配亚洲| 日本污视频网站| 欧美自拍偷拍一区| 春暖花开成人亚洲区| 青草青草久热精品视频在线网站 | 最近免费中文字幕视频2019| 欧美xxx视频| 日本不卡二区高清三区| 久久精品国语| 中文字幕被公侵犯的漂亮人妻| 福利一区视频在线观看| 亚洲欧洲精品视频| 热久久这里只有| 竹菊久久久久久久| 人妻无码视频一区二区三区| 国产农村妇女精品| 亚洲一区二区天堂| 日韩一中文字幕| 欧美三级一区| 国产一级大片免费看| 懂色av一区二区三区免费观看| 久久久久久久蜜桃| 亚洲电影天堂av | 欧美日韩亚洲精品一区二区三区| 天堂成人在线视频| 97超碰色婷婷| 自拍亚洲一区| 午夜在线观看av| 1024成人网| 日韩成人精品视频| 亚洲国产精品www| 欧美a级一区二区| 青娱乐国产视频| 欧美日韩亚洲综合| а√天堂资源地址在线下载| 亚洲最大av网站| 亚洲国产91| 素人fc2av清纯18岁| 一本色道a无线码一区v| 在线日本中文字幕| 91天堂在线视频| 亚洲福利一区| www久久久久久久| 欧美精品高清视频| 国产精品蜜臀| 日本一区高清不卡| 国内成人精品2018免费看| 久久久久久久久久久久国产| 亚洲精品视频二区| 91精品一区| 毛片在线视频播放| 国产精品视频九色porn| 国产xxxx在线观看| 欧美在线播放视频| 91tv精品福利国产在线观看| 特级特黄刘亦菲aaa级| 欧美在线观看你懂的| 丰满诱人av在线播放| 日本一区免费观看| 国产精品一区二区不卡| 天堂网视频在线| 久国内精品在线| 精品国产91乱码一区二区三区四区 | 国产精品嫩草99av在线| 国产日韩精品中文字无码| 精品国产免费一区二区三区四区| 朝桐光一区二区| 欧美这里只有精品| 亚洲国产岛国毛片在线| 少妇av一区二区| 91久久久在线| 老司机亚洲精品|