NCF参数化建筑论坛

标题: 请教排列组合问题? [打印本页]

作者: mk123123    时间: 2013-9-6 09:53
标题: 请教排列组合问题?
现在我得出10个数据,怎么随机选出其中3条线,然后把所有的可能性都选出。
作者: mk123123    时间: 2013-9-6 14:12
PATH MAPPER应该是能写出来的……求大神出现
作者: wdc63    时间: 2013-9-6 14:39
mk123123 发表于 2013-9-6 14:12
PATH MAPPER应该是能写出来的……求大神出现

path mapper恐怕不能写出来,用脚本很容易实现。
作者: mk123123    时间: 2013-9-6 14:42
wdc63 发表于 2013-9-6 14:39
path mapper恐怕不能写出来,用脚本很容易实现。

VB怎么写 请教下
作者: wdc63    时间: 2013-9-6 14:50
非全排列比较简便的算法:
每个元素有一个下标,1和0,1表示已选中,0表示未选中
1 将数组前n个元素置1,表示第一个组合为前n个数。     
2 从左到右扫描数组元素值的“10”组合,找到第一个“10”组合后将其变为   “01”组合,同时将其左边的所有“1”全部移动到数组的最左端。     
3 当第一个“1”移动到数组的m-n的位置,即n个“1”全部移动到最右端时,就得到了最后一个组合。     

作者: mk123123    时间: 2013-9-6 15:01
wdc63 发表于 2013-9-6 14:50
非全排列比较简便的算法:
每个元素有一个下标,1和0,1表示已选中,0表示未选中
1 将数组前n个元素置1,表 ...

这样不就会有重复的么?
作者: mk123123    时间: 2013-9-6 15:18
弄是弄出来了……发现运算有点大……36个数据随机选3个出来都有 7140种组合……
作者: mk123123    时间: 2013-9-6 15:25
[attach]39916[/attach]一堆运算之后得到36条线……本来打算随机选取3条线,把所有可能性都选出,然后JOIN在一起,闭合的就封面,不闭合就放弃。再随机选取4条线,把所有可能性都选出,然后JOIN在一起,闭合的就封面,不闭合就放弃。这样应该写出一个用SRF包裹线框的东西

作者: wdc63    时间: 2013-9-6 15:32
mk123123 发表于 2013-9-6 15:25
一堆运算之后得到36条线……本来打算随机选取3条线,把所有可能性都选出,然后JOIN在一起,闭合的就封面,不 ...

粗略看了下你这种算法估计是不可行的,要是有个面的四条边都被join了,它怎么能形成面,还是利用顶点凸包裹算法吧,为啥不用现成已有的东西要自己来想算法。
作者: mk123123    时间: 2013-9-6 15:39
[attach]39917[/attach]因为要得到一个随着某几条弯曲而会变化的一个东西,如果用定点去算的话貌似做不了,而且那些曲线是KANGAROO那里输出来的

作者: mk123123    时间: 2013-9-6 15:41
wdc63 发表于 2013-9-6 15:32
粗略看了下你这种算法估计是不可行的,要是有个面的四条边都被join了,它怎么能形成面,还是利用顶点凸包 ...

只要那4条边JOIN在一起 成为一个闭合圈 就能封面了吧?
作者: wdc63    时间: 2013-9-6 15:57
mk123123 发表于 2013-9-6 15:39
因为要得到一个随着某几条弯曲而会变化的一个东西,如果用定点去算的话貌似做不了,而且那些曲线是KANGAROO ...

这样的话,重新给你想了个算法,每条线只选择与它相连的线,三条或四条。
选出所有的组合,然后在所有组合中排出重复的组合
然后再判断能不能成面
估计比你的要简单些
作者: mk123123    时间: 2013-9-6 16:05
wdc63 发表于 2013-9-6 15:57
这样的话,重新给你想了个算法,每条线只选择与它相连的线,三条或四条。
选出所有的组合,然后在所有组 ...

其实你说的就是我前面说的……只是我减少了一个判断线是不是相连。我让每条线和所以线都连。三条或者四条,然后闭合的就成面。我准备去MANTIS那个BLOG,也问下他,看他有没有办法
作者: wdc63    时间: 2013-9-6 16:18
mk123123 发表于 2013-9-6 16:05
其实你说的就是我前面说的……只是我减少了一个判断线是不是相连。我让每条线和所以线都连。三条或者四条 ...

额。这一步是减少算法复杂度的关键。。
作者: mk123123    时间: 2013-9-6 16:20
wdc63 发表于 2013-9-6 16:18
额。这一步是减少算法复杂度的关键。。

是的~那用哪个去判断是不是相连?
作者: wdc63    时间: 2013-9-6 17:06
mk123123 发表于 2013-9-6 16:20
是的~那用哪个去判断是不是相连?


作者: 白牙王子    时间: 2013-9-17 17:24
wdc63 发表于 2013-9-6 15:32
粗略看了下你这种算法估计是不可行的,要是有个面的四条边都被join了,它怎么能形成面,还是利用顶点凸包 ...

求教一下 凸包算法 怎么在gh里实现?
作者: 白牙王子    时间: 2013-9-17 17:24
wdc63 发表于 2013-9-6 15:32
粗略看了下你这种算法估计是不可行的,要是有个面的四条边都被join了,它怎么能形成面,还是利用顶点凸包 ...

求教一下 凸包算法 怎么在gh里实现?




欢迎光临 NCF参数化建筑论坛 (http://bbs.ncf-china.com/) Powered by Discuz! X3.2