NCF参数化建筑论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 13740|回复: 17
打印 上一主题 下一主题

请教排列组合问题?

[复制链接]
跳转到指定楼层
1m
发表于 2013-9-6 09:53:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在我得出10个数据,怎么随机选出其中3条线,然后把所有的可能性都选出。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
2m
 楼主| 发表于 2013-9-6 14:12:53 | 只看该作者
PATH MAPPER应该是能写出来的……求大神出现
3m
发表于 2013-9-6 14:39:15 | 只看该作者
4m
 楼主| 发表于 2013-9-6 14:42:36 | 只看该作者
wdc63 发表于 2013-9-6 14:39
path mapper恐怕不能写出来,用脚本很容易实现。

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

这样不就会有重复的么?
7m
 楼主| 发表于 2013-9-6 15:18:51 | 只看该作者
弄是弄出来了……发现运算有点大……36个数据随机选3个出来都有 7140种组合……
8m
 楼主| 发表于 2013-9-6 15:25:36 | 只看该作者
9m
发表于 2013-9-6 15:32:33 | 只看该作者
mk123123 发表于 2013-9-6 15:25
一堆运算之后得到36条线……本来打算随机选取3条线,把所有可能性都选出,然后JOIN在一起,闭合的就封面,不 ...

粗略看了下你这种算法估计是不可行的,要是有个面的四条边都被join了,它怎么能形成面,还是利用顶点凸包裹算法吧,为啥不用现成已有的东西要自己来想算法。
10m
 楼主| 发表于 2013-9-6 15:39:21 | 只看该作者
11m
 楼主| 发表于 2013-9-6 15:41:46 | 只看该作者
wdc63 发表于 2013-9-6 15:32
粗略看了下你这种算法估计是不可行的,要是有个面的四条边都被join了,它怎么能形成面,还是利用顶点凸包 ...

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

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

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

额。这一步是减少算法复杂度的关键。。
15m
 楼主| 发表于 2013-9-6 16:20:47 | 只看该作者
wdc63 发表于 2013-9-6 16:18
额。这一步是减少算法复杂度的关键。。

是的~那用哪个去判断是不是相连?
16m
发表于 2013-9-6 17:06:32 | 只看该作者
mk123123 发表于 2013-9-6 16:20
是的~那用哪个去判断是不是相连?

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

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

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

小黑屋|手机版|NCF参数化建筑论坛 ( 浙ICP备2020044100号-2 )    辽公网安备21021102000973号

GMT+8, 2024-11-1 12:36 , Processed in 0.355350 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表