台灣最大程式設計社群網站
線上人數
1572
 
會員總數:246037
討論主題:189624
歡迎您免費加入會員
討論區列表 >> C# >> 有條件式排列組合
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
有條件式排列組合
價值 : 200 QP  點閱數:355 回應數:10
樓主

bese
門外漢
0 14
312 27
發送站內信

各位大神,想問一個問題,我有6組英文數字[A,B,C,D,E,F]要做所有排列組合並列印出來,但每組數字都有相連條件

A可以相連B、C
A => B、C
B => A、C、D、E
C => A、B、D、E
D => B、C、E、F
E => B、C、D、F
F => D、E

已跑過的數字不可以重複

因為我是舉例6種數字,將來可能更多種,所以迴圈數量不可寫死

想請問一下這段程式碼如何撰寫,感激各位大神




搜尋相關Tags的文章: [ 排列組合 ] ,
本篇文章發表於2020-06-17 11:18
1樓
回應

P陳
檢舉此回應
看不太懂您的意思
建議:用ASCII 內碼來處理即可
A=65 B=66 C=67
只要 ABS前後相減後得到1的就是相連的
---------------------------

A與B C 皆差1
B與 A C 差1,但與D E 差就不是1了 您也列出來了
所以看不懂
本篇文章回覆於2020-06-17 14:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

bese
檢舉此回應
應該是說把6個英文[A,B,C,D,E,F]看成座標,尋求最短路徑

然後F可以跟D或E對接,但不可與A、B、C對接,僅此而已
本篇文章回覆於2020-06-17 15:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

P陳
檢舉此回應
E可以往前跟3個對接
E => B、C、D、F

F 為什麼不可往前對接3個呢?
C D E

建議先將判斷方式以文字表示出來,你才有辦法往下走
本篇文章回覆於2020-06-18 06:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

bese
檢舉此回應

提供一下線段圖形,只能與鄰近邊相連

------A------

| |
| |
B C
| |
| |

\ \
\ \
\ \
D E
\ \
\ \

---------F---------
本篇文章回覆於2020-06-18 11:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

bese
檢舉此回應
抱歉,此平台會自動刪除空白 但大致圖形約略是這樣 應該是可以表達我的意思
本篇文章回覆於2020-06-18 11:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
不錯的參考

HB
檢舉此回應
思考一下邏輯,提供下列語法供參考:
但B與E的結果,需要再調整邏輯。


本篇文章回覆於2020-06-21 11:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

HB
檢舉此回應
忘記是C#的平台,提供了VB的語法,請自行轉換囉!
本篇文章回覆於2020-06-21 11:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

老頑童
捐贈 VP 給 老頑童 檢舉此回應
本篇文章回覆於2020-06-22 10:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
最有價值解答

老頑童
捐贈 VP 給 老頑童 檢舉此回應
https://drive.google.com/file/d/17IZpbGwauzDKOaHMa6g0awOx3_4pXrQy/view?usp=sharing
本篇文章回覆於2020-06-22 12:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
回應

Allen
捐贈 VP 給 Allen 檢舉此回應
我也試寫了一下, 請參考

https://vimeo.com/433275214
本篇文章回覆於2020-06-28 15:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.