六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

24點的算法

[摘要]首先,我們先看看這個游戲的規則,給出4個1-9之間的自然數,例如:1,5,5,5(這是很經典的一個例子哦 ^_^)。在1,5,5,5中間用+、-、*、/來運算后得到24這個數。每個數只能使用一次。如果沒有計算過的基本都會被難住吧。哈哈,答案是 5*(5-1/5)。是不是很經典呢?和它類似的還有3,...

    首先,我們先看看這個游戲的規則,給出4個1-9之間的自然數,例如:1,5,5,5(這是很經典的一個例子哦 ^_^)。在1,5,5,5中間用+、-、*、/來運算后得到24這個數。每個數只能使用一次。如果沒有計算過的基本都會被難住吧。哈哈,答案是 5*(5-1/5)。是不是很經典呢?和它類似的還有3,3,8,8。

    下面我們來看具體算法。一般我們考慮這樣的問題的時候,都是直接寫一個超大的select來判斷。但重復性的工作是最無聊的��!我們來分析一下這個簡單的游戲規則就可以找到一個簡單的方法。

    例如:4個數A、B、C、D,我們可以用F(A,B,C,D)=24來表示。那么。我們就可以把函數F拆解成F1(B,C,D)=P1(24,A)。(意思是:B,C,D之間的四則運算可以得到A和24之間的四則運算結果)。那么F1又可以繼續拆解為C和D之間的四則運算關系得到結果后再和B來一次四則運算結果。這樣,就可以得到很簡單的一個數組6*6*6=216種結果而已。當然,這是A,B,C,D順序固定的組合,那么把A,B,C,D換個位置,又一種組合。所以,所有的結果有6*6*6*12種。但,我們還是忽略了一種情況:A和B的值與C和D的值再進行四則運算,那么我們還需要再加一組6*6*6就可以了。

    好了,不多說了,大家自己看下面的代碼吧。

'--------------------------------計算24的算法---------------------------
'        算法作者:CSDN(penguinMII)--企鵝
'        開發時間:2005-3-23
'        如有引用此算法請保留此信息
'-----------------------------------------------------------------------

'關于F1(F2(F3(a1,a2),a3),a4)的變量定義
Dim f_f(0 To 5) As Double               '2個數之間運算后的6種結果
Dim s_s(0 To 5) As String               '2個數之間運算后的表達式
Dim f_f_f(0 To 5) As Double             '第3個數和上面2數運算后的結果
Dim s_s_s(0 To 5) As String             '第3個數和上面2數運算后的表達式
Dim f_f_f_f(0 To 5) As Double           '第4個數和上面3數運算后的結果
Dim s_s_s_s(0 To 5) As String           '第4個數和上面3數運算后的結果
'關于F1(F2(a1,a2),F3(a3,a4))的變量定義
Dim f_f1(0 To 5) As Double              '第3個數第4個數運算結果
Dim s_s1(0 To 5) As String              '第3個數第4個數運算后的表達式
Dim f_f2(0 To 5) As Double              '第1、2數和第3、4個數運算后的結果
Dim s_s2(0 To 5) As String              '第1、2數和第3、4個數運算后的表達式

Sub ff2(x As Double, y As Double, sx As String, sy As String)
On Error Resume Next
f_f2(0) = x + y
s_s2(0) = "(" + sx + "+" + sy + ")"
f_f2(1) = x - y
s_s2(1) = "(" + sx + "-" + sy + ")"
f_f2(2) = y - x
s_s2(2) = "(" + sy + "-" + sx + ")"
f_f2(3) = x * y
s_s2(3) = "(" + sx + "*" + sy + ")"
f_f2(4) = x / y
s_s2(4) = "(" + sx + "/" + sy + ")"
f_f2(5) = y / x
s_s2(5) = "(" + sy + "/" + sx + ")"

End Sub

Sub ff1(x As Integer, y As Integer)
On Error Resume Next
f_f1(0) = x + y
s_s1(0) = "(" + CStr(x) + "+" + CStr(y) + ")"
f_f1(1) = x - y
s_s1(1) = "(" + CStr(x) + "-" + CStr(y) + ")"
f_f1(2) = y - x
s_s1(2) = "(" + CStr(y) + "-" + CStr(x) + ")"
f_f1(3) = x * y
s_s1(3) = "(" + CStr(x) + "*" + CStr(y) + ")"
f_f1(4) = x / y
s_s1(4) = "(" + CStr(x) + "/" + CStr(y) + ")"
f_f1(5) = y / x
s_s1(5) = "(" + CStr(y) + "/" + CStr(x) + ")"

End Sub

Sub ff(x As Integer, y As Integer)
On Error Resume Next
f_f(0) = x + y
s_s(0) = "(" + CStr(x) + "+" + CStr(y) + ")"
f_f(1) = x - y
s_s(1) = "(" + CStr(x) + "-" + CStr(y) + ")"
f_f(2) = y - x
s_s(2) = "(" + CStr(y) + "-" + CStr(x) + ")"
f_f(3) = x * y
s_s(3) = "(" + CStr(x) + "*" + CStr(y) + ")"
f_f(4) = x / y
s_s(4) = "(" + CStr(x) + "/" + CStr(y) + ")"
f_f(5) = y / x
s_s(5) = "(" + CStr(y) + "/" + CStr(x) + ")"

End Sub

Sub fff(x As Integer, y As Double, s As String)
On Error Resume Next
f_f_f(0) = x + y
s_s_s(0) = "(" + CStr(x) + "+" + s + ")"
f_f_f(1) = x - y
s_s_s(1) = "(" + CStr(x) + "-" + s + ")"
f_f_f(2) = y - x
s_s_s(2) = "(" + s + "-" + CStr(x) + ")"
f_f_f(3) = x * y
s_s_s(3) = "(" + CStr(x) + "*" + s + ")"
f_f_f(4) = x / y
s_s_s(4) = "(" + CStr(x) + "/" + s + ")"
f_f_f(5) = y / x
s_s_s(5) = "(" + s + "/" + CStr(x) + ")"

End Sub


Sub ffff(x As Integer, y As Double, s As String)
On Error Resume Next
f_f_f_f(0) = x + y
s_s_s_s(0) = "(" + CStr(x) + "+" + s + ")"
f_f_f_f(1) = x - y
s_s_s_s(1) = "(" + CStr(x) + "-" + s + ")"
f_f_f_f(2) = y - x
s_s_s_s(2) = "(" + s + "-" + CStr(x) + ")"
f_f_f_f(3) = x * y
s_s_s_s(3) = "(" + CStr(x) + "*" + s + ")"
f_f_f_f(4) = x / y
s_s_s_s(4) = "(" + CStr(x) + "/" + s + ")"
f_f_f_f(5) = y / x
s_s_s_s(5) = "(" + s + "/" + CStr(x) + ")"

End Sub

Sub ppp(a1 As Integer, a2 As Integer, a3 As Integer, a4 As Integer)
Dim tempp As Integer

tempp = 0

Call ff(a1, a2)
For i = 0 To 5
Call fff(a3, f_f(i), s_s(i))
For j = 0 To 5
Call ffff(a4, f_f_f(j), s_s_s(j))
For k = 0 To 5
If f_f_f_f(k) > 23.99999 And f_f_f_f(k) < 24.00001 Then


tempp = 0
For xyz = 0 To Me.List1.ListCount - 1
If Me.List1.List(xyz) = s_s_s_s(k) Then
tempp = tempp + 1
End If
Next xyz

If tempp = 0 Then
Me.List1.AddItem s_s_s_s(k)
End If

End If
Next k
Next j
Next i

End Sub

Sub qqq(a1 As Integer, a2 As Integer, a3 As Integer, a4 As Integer)
Dim tempp As Integer
tempp = 0

Call ff(a1, a2)
Call ff1(a3, a4)
For i = 0 To 5
For j = 0 To 5
Call ff2(f_f(i), f_f1(j), s_s(i), s_s1(j))
For k = 0 To 5
If f_f2(k) > 23.9999 And f_f2(k) < 24.00001 Then

tempp = 0
For xyz = 0 To Me.List1.ListCount - 1
If Me.List1.List(xyz) = s_s2(k) Then
tempp = tempp + 1
End If
Next xyz

If tempp = 0 Then
Me.List1.AddItem s_s2(k)
End If

End If
Next k
Next j
Next i
End Sub

Private Sub Command1_Click()
Me.List1.Clear


Call ppp(Me.Text1(0).Text, Me.Text1(1).Text, Me.Text1(2).Text, Me.Text1(3).Text)
Call ppp(Me.Text1(0).Text, Me.Text1(1).Text, Me.Text1(3).Text, Me.Text1(2).Text)
Call ppp(Me.Text1(0).Text, Me.Text1(2).Text, Me.Text1(1).Text, Me.Text1(3).Text)
Call ppp(Me.Text1(0).Text, Me.Text1(2).Text, Me.Text1(3).Text, Me.Text1(1).Text)
Call ppp(Me.Text1(0).Text, Me.Text1(3).Text, Me.Text1(1).Text, Me.Text1(2).Text)
Call ppp(Me.Text1(0).Text, Me.Text1(3).Text, Me.Text1(2).Text, Me.Text1(1).Text)
Call ppp(Me.Text1(1).Text, Me.Text1(2).Text, Me.Text1(3).Text, Me.Text1(0).Text)
Call ppp(Me.Text1(1).Text, Me.Text1(2).Text, Me.Text1(0).Text, Me.Text1(3).Text)
Call ppp(Me.Text1(1).Text, Me.Text1(3).Text, Me.Text1(0).Text, Me.Text1(2).Text)
Call ppp(Me.Text1(1).Text, Me.Text1(3).Text, Me.Text1(2).Text, Me.Text1(0).Text)
Call ppp(Me.Text1(2).Text, Me.Text1(3).Text, Me.Text1(1).Text, Me.Text1(0).Text)
Call ppp(Me.Text1(2).Text, Me.Text1(3).Text, Me.Text1(0).Text, Me.Text1(1).Text)

Call qqq(Me.Text1(0).Text, Me.Text1(1).Text, Me.Text1(2).Text, Me.Text1(3).Text)

End Sub

 

 





標簽:24點的算法 
主站蜘蛛池模板: 性免费网站 | 伊人网影院 | 午夜视频在线观看完整版 | 亚洲免费精品 | 日本精品一区二区三区四区 | 五月激情六月丁香 | 又粗又大又长又爽免费视频 | 亚洲精品第一国产综合高清 | 四虎免费影院4hu永久免费 | 四虎成年永久免费网站 | 日韩v在线 | 真实国产乱子伦精品一区二区三区 | 欧美综合亚洲图片综合区 | 色婷婷影院在线视频免费播放 | 中文字幕日韩精品在线 | 日韩手机在线 | 欧美一区2区三区4区公司 | 日本在线视频网址 | 四虎国产精品永久在线看 | 亚洲乱码一区二区三区国产精品 | 欧美一区二区三区成人看不卡 | 天天操天天透 | 思思99思思久久精品 | 亚洲天堂2014 | 青娱乐极品在线 | 青青青草免费 | 色橹橹欧美在线观看视频高清 | 色偷偷亚洲女性天堂 | 青娱乐免费视频在线观看 | 涩涩涩在线 | 天天操天天射天天操 | 青娱乐免费在线观看 | 青草青草久热精品视频在线观看 | 欧美特级午夜一区二区三区 | 欧美又粗又硬 | 手机看片国产在线 | 四虎成人免费网址在线 | 日本mv精品中文字幕 | 青春草国产成人精品久久 | 日本在线免费 | 色迷迷网免费站视频在线观看 |