3412

vb(程式設計)~樂透包牌

如果我今天簽的號碼為4 10 21 25 33 39 特別號44

我要怎麼利用遞回的方法組合出4 10 21 25 33 39這六個號碼的所有排列組合?
月島

你是不是算錯了1234把最後一個往前移4123 4123把最後一個往前移3412 3412把最後一個往前移2341 2341把最後一個往前移1234 1234與之前重覆所以改由第三位移動 1234變成3124 ←這裡不就重複了?123 = 312 希望被重算一次 50元?3124把最後一個往前移4312 ←和上面重複了 431 = 341 又被多收了 50 元看來月島大去買彩券包牌時

可能會多花上很多$$給妹妹賺喔...這樣下次你錢給我

我幫你買彩券好了

就用你的程式的排列組合算出來的金額如何?**************既然是包牌程式那基本上只要六個號碼各沒重複

特別號換掉就行了假設 1 2 3 4 5 6 7 這樣七個數字好了樂透包牌應該是這樣1 2 3 4 5 6

72 3 4 5 6 7

13 4 5 6 7 1

24 5 6 7 1 2

35 6 7 1 2 3

46 7 1 2 3 4

57 1 2 3 4 5

6因為再算下去就會重複了 樂透包牌應該是算數字『出現』次數

不是數字『順序的排列』組合數同個數字

不同順序

應該是不被考慮進去所以

基本上只要用 split 以空白為拆字規則拆掉後

把 index 重新組合一下就好了再不然

善用LEFT和RIGHT來組合也是可以做到 (把左邊拆掉後

補往右邊去

列印出前六個數字即可)最後

包子其實一點都不難理解做題目前

先把腦袋清空

保持清醒狀態然後慢慢想

如果你是電腦

該怎麼做?畢竟電腦只會做你要它做的事情它不會去想些有的沒的

對它來說

沒有所謂的『常識』

沒有所謂的『經驗』所以你必須一個步驟一個步驟對電腦下指令所以咧

你就必須要知道如果沒電腦時

你要怎麼去算這個包牌動作?然後

再把你算出的方式

轉成電腦語言教電腦怎麼做如此而已

你若把電腦認為它應該會自己知道的話

那你就大錯特錯了
一個方向給你我用旋轉法好了(今天剛寫出來)1234 4123 3412 23413124 4312 2431 12432314 4231 1423 31423214 4321 1432 21431324 4132 2413 32412134 4213 3421 1342 這個遞迴要分成兩個部份第一部份做資料的列印及將最後一個字轉到最前面(當然是在遞迴的最深處才做這一行)第二部份產生一個越深越多次的迴圈迴圈中 呼叫自己然後再把對應的數轉到最前面用文字說明好像不太好懂事實上這個東西用之前我與kukka大討論的無限深度迴圈系統概念就可以完成了差別在於不是數字相加而是拿數字帶入你的陣列資料試試看不懂的提出來 再討論 ^^
說真的那個kukka大大所寫的無線回圈我看不太懂 旋轉法? 第一次聽過可以用程式說明一下嗎
1234把最後一個往前移4123 4123把最後一個往前移3412 3412把最後一個往前移2341 2341把最後一個往前移1234 1234與之前重覆所以改由第三位移動 1234變成3124 3124把最後一個往前移4312 4312把最後一個往前移2431 以此類推 等到完全沒得換的時候 就不再移動 這個就是旋轉法 感謝某在此出沒的軟體動物大的解說 XD
如果我今天簽的號碼為4 10 21 25 33 39 特別號44

我要怎麼利用遞回的方法組合出4 10 21 25 33 39這六個號碼的 ==所有排列組合? == 我只看到這個 沒想到包牌的事
話說回來 kukka大你居然消遣我 XD
哈哈哈哈~現在才發現...^O^

vb程式設計,c 程式設計,程式設計入門,程式設計俱樂部,程式設計軟體,物件導向程式設計,程式設計證照,視窗程式設計,java程式設計,遊戲程式設計程式設計,LEFT,數字,電腦,包牌程式,月島,重複,保持清醒,組合,遞回

迴圈|VB6|驗證|輸出|陣列|表單|合併|元件|程式|物件|連結|VB|資料|運算式|檔案|VB.net|VBA|OLE|呼叫|統計|副程式|資料庫|原始檔|欄位|巨集|執行檔|計數器|程式碼|按鍵精靈|

3412
參考:http://tw.knowledge.yahoo.com/question/question?qid=1405110307433如有不適當的文章於本部落格,請留言給我,將移除本文。謝謝!
arrow
arrow

    Flex XC 3401 發表在 痞客邦 留言(0) 人氣()