为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > [不如跳舞舞蹈分解动作]怎么学习舞蹈——跳舞的技巧

[不如跳舞舞蹈分解动作]怎么学习舞蹈——跳舞的技巧

2018-01-11 17页 doc 37KB 11阅读

用户头像

is_977556

暂无简介

举报
[不如跳舞舞蹈分解动作]怎么学习舞蹈——跳舞的技巧[不如跳舞舞蹈分解动作]怎么学习舞蹈——跳舞的技巧 [不如跳舞舞蹈分解动作]怎么学习舞蹈—— 跳舞的技巧 篇一 : 怎么学习舞蹈——跳舞的技巧 文章导读本文关键字:跳舞的技巧 怎样跳得轻松流利 1、舞姿、舞感、舞韵与松、轻、飘、高是 摩登舞的意味,想要跳出醉人漂亮的舞姿,必需要深深的感受摩登舞 五大技巧的魅力,才干有端庄、委婉、稳健、典雅的作风和绅士风度。 As Integer, Right As Integer, Up As Integer, Down As Integer Private Row As Inte...
[不如跳舞舞蹈分解动作]怎么学习舞蹈——跳舞的技巧
[不如跳舞舞蹈分解动作]怎么学习舞蹈——跳舞的技巧 [不如跳舞舞蹈分解动作]怎么学习舞蹈—— 跳舞的技巧 篇一 : 怎么学习舞蹈——跳舞的技巧 文章导读本文关键字:跳舞的技巧 怎样跳得轻松流利 1、舞姿、舞感、舞韵与松、轻、飘、高是 摩登舞的意味,想要跳出醉人漂亮的舞姿,必需要深深的感受摩登舞 五大技巧的魅力,才干有端庄、委婉、稳健、典雅的作风和绅士风度。 As Integer, Right As Integer, Up As Integer, Down As Integer Private Row As Integer, Col As Integer Private _Head As Integer Private _Rows As Integer, _Cols As Integer, _NodeCount As Integer Private Ans As Integer 前两行示每个元素的六个分量,用数组表示;_Head表示元 素Head,在类中初始化时令其等于0;_Rows表示矩阵的行数,_Cols 表示矩阵的列数,_NodeCount表示元素的个数;Ans用于存放 Public Function Dance As Integer Return IIf = True, Ans, Nothing) End Function Private Function Dance As Boolean Dim C1 As Integer = Right If Then ReDim Preserve Ans Return True End If RemoveCol Dim I As Integer, J As Integer I = Down Do While I C1 Ans = Row J = Right Do While J I RemoveCol) J = Right Loop If Dance Then Return True J = Left Do While J I ResumeCol) J = Left Loop I = Down Loop ResumeCol Return False End Function 其中第一个函数Dance是对外开放的函数,它通过调用Dance来求解问题,根据返回值来决定返回答案还是返回空 第二个函数是求解的主函数。首先通过Right获得_Head元素的右元素。判断是否等于自身,若是,求解结束,因为答案保存在Ans到Ans中,所以先把答案数组中多余的部分去除。 RemoveCol函数是用来标示列首元素的,ResumeCol函数用来回标列首元素的,其中通过Col获得J元素的列首元素。在函数中有个很聪明的,在标示列首元素时,顺序是从I元素的右侧元素开 始;而在回标列首元素时,顺序是从I元素的左侧元素开始,正好顺序和标示列首元素的顺序相反。 在调用Dance前,把当前选中的行保存到Ans中,当Dance返回True时,说明递归调用获得正确的解,那直接返回True;返回False时,说明当前选择的行不正确,回标列首元素,获得下一个元素。 当元素C1中所在的列的其余元素所选定的行没有求解正确的递归函数时,说明当前的求解失败,回标列首元素C1,返回False Public Sub RemoveCol Left) = Left Right) = Right Dim I As Integer, J As Integer I = Down Do While I Col J = Right Do While J I Up) = Up Down) = Down J = Right Loop I = Down Loop End Sub 首先,利用Left) = Left 和Right) = Right 把列首元素Col从水平双向链中移除出去。再依次把Col所在的列的其余元素的所在行的其余元素从垂直双向链中移除出去,利用的是Up) = Up 和Down) = Down。找寻Col所在列的其余元素的顺序是从下边开始,移除所在行其余元素的顺序是从右边开始 。可以参考之前的图中的紫色部分。 Public Sub ResumeCol Left) = Col Right) = Col Dim I As Integer, J As Integer I = Up Do While J = Right Do While J I Up) = J Down) = J J = Right Loop I = Up Loop End Sub 首先,利用Left) = Col 和Right) = Col 把列首元素Col恢复到水平双向链中。再依次把Col所在的列的其余元素的所在行的其余元素恢复到垂直双向链中,利用的是Up) = J 和Down) = J。找寻Col所在列的其余元素的顺序是从上边开始,恢复所在行其余元素的顺序是从右边开始 。 Public Sub New ReDim Left, Right, Up, Down, Row, Col, Ans Dim I As Integer Up = 0 Down = 0 Right = 1 Left = Cols For I = 1 To Cols Up = I Down = I Left = I - 1 Right = I + 1 Col = I Row = 0 Next Right = 0 _Rows = 0 _Cols = Cols _NodeCount = Cols _Head = 0 End Sub 初始化函数有一个参数Cols,表示这个矩阵的列数。 初始化的时候,由于没有传入矩阵元素的信息。因此,在该函数中先把辅助元素完成 0表示Head元素,1-Cols表示Cols个列的列首元素 第一句,重定义六个分量的数组,表示Head元素和列首元素的六个分量。 Right = 1表示Head元素的Right分量指向列首元素1;Left = Cols表示Head元素的Left分量指向列首元素Cols 后面的一段循环,给每个列首元素指定六个分量。Up和Down分量指向自己,Left分量指向左边的列首元素,Right分量指向右边 的列首元素,Col分量指向自己,Row分量为0,参看前面的图。最 后Right=0,Cols列的列首元素的Right分量指向Head元素 其后是一些变量的赋值。把_Head赋值为0,表示0为Head元 素,是为了后面的代码的直观性 Public Sub AppendLine As Integer) _Rows += 1 If Value.Length = 0 Then Exit Sub Dim I As Integer, K As Integer = 0 For I = 0 To Value.Length - 1 If Value = 1 Then _NodeCount += 1 ReDim Preserve Left ReDim Preserve Right ReDim Preserve Up ReDim Preserve Down ReDim Preserve Row ReDim Preserve Col ReDim Preserve Ans If K = 0 Then Left = _NodeCount Right = _NodeCount K = 1 Else Left = _NodeCount - 1 Right = Right Left) = _NodeCount Right = _NodeCount End If Down = I + 1 Up = Up Down) = _NodeCount Up = _NodeCount Row = _Rows Col = I + 1 End If Next End Sub 把矩阵的一行元素添加到类中 在前文中介绍了Dancing Links中只存储1的元素,因此,在添加的时候,先判断值是否是1。 那实际上问题是如何把元素添加到双向链中,在添加的过程中,自左向右添加。 先考量如何把元素添加到水平双向链中 当添加这一行的第一个元素时,由于还没有双向链,首先构造一个只有一个元素的双向链。Left = _NodeCount和Right = _NodeCount。这个元素的Left和Right分量都指向自己。 从第二个元素开始。问题就转换为把元素添加到水平双向链的末尾,实际上需要知道之前的水平双向链的最左边的元素和最右边的元素,可以肯定的是最右边的元素是_NodeCount-1,最左边的元素是什么,之前并没有缓存啊。由于是循环双向链,Right就是这双向链的最左边的元素。Left = _NodeCount - 1,把当前元素的Left分量指向最右边的元素即_NodeCount-1;Right = Right ,把当前元素的Right分量指向最左边的元素即Right;Left) = _NodeCount,把最左边的元素即Right的Left分量指向当前元素;Right = _NodeCount,把最右边的元素即_NodeCount-1的Right分量指向当前元素 再考量如何把元素添加到垂直双向链 同样,问题就转换为把元素添加到垂直双向链的末尾,实际上 需要知道之前的垂直双向链的最上边的元素和最下边的元素。和水平双向链的不同,我们没法知道最下边的元素,但是我们可以利用列首元素知道最上边的元素。因此,最上边的元素是I+1,那么最下边的元素就是Up。Down = I + 1,把当前元素的Down分量指向最上边的元素即I+1;Up = Up ,把当前元素的Up分量指向最下边的元素即Up;Down) = _NodeCount,把最下边元素即Up的Down分量指向当前元素;Up = _NodeCount,把最上边元素即I+1的Up分量指向当前元素 至此,完成了把当前元素添加到两个双向链的过程 最后,给当前元素的Row分量和Col分量赋值 在文首的题目中,添加第一行的数据,如下调用 AppendLine 如果一行中有大量的0,那么用下面的函数比较方便 Public Sub AppendLineByIndex As Integer) _Rows += 1 If Index.Length = 0 Then Exit Sub Dim I As Integer, K As Integer = 0 ReDim Preserve Left ReDim Preserve Right ReDim Preserve Up ReDim Preserve Down ReDim Preserve Row ReDim Preserve Col ReDim Preserve Ans For I = 0 To Index.Length - 1 _NodeCount += 1 If I = 0 Then Left = _NodeCount Right = _NodeCount Else Left = _NodeCount - 1 Right = Right Left) = _NodeCount Right = _NodeCount End If Down = Index Up = Up) Down)) = _NodeCount Up) = _NodeCount Row = _Rows Col = Index Next End Sub 该函数的参数是这一行中值为1的元素的所在列的下标,具体就不再解释了。和AppendLine函数类似。 在文首的题目中,添加第一行的数据,如下调用 AppendLineByIndex 和AppendLine效果相同。 下面的代码是调用该类求解文首题目的代码 Dim tS As New clsDancingLinks tS.AppendLineByIndex tS.AppendLineByIndex tS.AppendLineByIndex tS.AppendLineByIndex tS.AppendLineByIndex tS.AppendLineByIndex Dim Ans As Integer = tS.Dance Ans数组中的值是4,5,1 至此,求解精确覆盖问题的Dancing Links算法就介绍完了。 利用十字循环双向链这个特殊的数据结构,不可思议的完成了缓存矩 阵和回溯矩阵的过程,十分优雅,十分高效。故Donald E.Knuth把它 称为Dancing Links。我更喜欢跳跃的舞者这个名字 有很多问题都能转换为精确覆盖问题,再利用Dancing Links 算法求解就方便多了。 最后,把该类的完整代码贴在下方 Public Class clsDancingLinks Private Left As Integer, Right As Integer, Up As Integer, Down As Integer Private Row As Integer, Col As Integer Private _Head As Integer Private _Rows As Integer, _Cols As Integer, _NodeCount As Integer Private Ans As Integer Public Sub New ReDim Left, Right, Up, Down, Row, Col, Ans Dim I As Integer Up = 0 Down = 0 Right = 1 Left = Cols For I = 1 To Cols Up = I Down = I Left = I - 1 Right = I + 1 Col = I Row = 0 Next Right = 0 _Rows = 0 _Cols = Cols _NodeCount = Cols _Head = 0 End Sub Public Sub AppendLine As Integer) _Rows += 1 If Value.Length = 0 Then Exit Sub Dim I As Integer, K As Integer = 0 For I = 0 To Value.Length - 1 If Value = 1 Then _NodeCount += 1 ReDim Preserve Left ReDim Preserve Right ReDim Preserve Up ReDim Preserve Down ReDim Preserve Row ReDim Preserve Col ReDim Preserve Ans If K = 0 Then Left = _NodeCount Right = _NodeCount K = 1 Else Left = _NodeCount - 1 Right = Right Left) = _NodeCount Right = _NodeCount End If Down = I + 1 Up = Up Down) = _NodeCount Up = _NodeCount Row = _Rows Col = I + 1 End If Next End Sub Public Sub AppendLineByIndex As Integer) _Rows += 1 If Index.Length = 0 Then Exit Sub Dim I As Integer, K As Integer = 0 ReDim Preserve Left ReDim Preserve Right ReDim Preserve Up ReDim Preserve Down ReDim Preserve Row ReDim Preserve Col ReDim Preserve Ans For I = 0 To Index.Length - 1 _NodeCount += 1 If I = 0 Then Left = _NodeCount Right = _NodeCount Else Left = _NodeCount - 1 Right = Right Left) = _NodeCount Right = _NodeCount End If Down = Index Up = Up) Down)) = _NodeCount Up) = _NodeCount Row = _Rows Col = Index Next End Sub Public Function Dance As Integer Return IIf = True, Ans, Nothing) End Function Private Function Dance As Boolean Dim C1 As Integer = Right If Then ReDim Preserve Ans Return True End If RemoveCol Dim I As Integer, J As Integer I = Down Do While I C1 Ans = Row J = Right Do While J I RemoveCol) J = Right Loop If Dance Then Return True J = Left Do While J I ResumeCol) J = Left Loop I = Down Loop ResumeCol Return False End Function Public Sub RemoveCol Left) = Left Right) = Right Dim I As Integer, J As Integer I = Down Do While I Col J = Right Do While J I Up) = Up Down) = Down J = Right Loop I = Down Loop End Sub Public Sub ResumeCol Left) = Col Right) = Col Dim I As Integer, J As Integer I = Up Do While J = Right Do While J I Up) = J Down) = J J = Right Loop I = Up Loop End Sub End Class 篇三 : 在迪厅如何跳舞,求动作教程 在迪厅如何跳舞,求动作教程 随意来
/
本文档为【[不如跳舞舞蹈分解动作]怎么学习舞蹈——跳舞的技巧】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索