如果得到指定个数的球的不同的平面图形组合?
-
- 帖子: 24
- 注册时间: 2011-10-09 17:57
如果得到指定个数的球的不同的平面图形组合?
大家好,现有个问题期待大家共同讨论,比如指定四个球,我们可以得到如图所示四种平面图形组合。线性的长链,单个四原环,一个三元环,两个三元环这样的图形。如果球的个数增加,比如增加到8个,则又多少平面图形组合呢?如何具体表达出来?有点难度。谢谢大家。
我先列举几个例子,除了线性,八元环大家都知道的图形以外,图2所示的平面图形也在考虑之内,总之最小的三元环,最大的八元环,都可以自由组合成不同的图形。
我先列举几个例子,除了线性,八元环大家都知道的图形以外,图2所示的平面图形也在考虑之内,总之最小的三元环,最大的八元环,都可以自由组合成不同的图形。
-
- 帖子: 919
- 注册时间: 2009-07-01 22:04
- lilydjwg
- 论坛版主
- 帖子: 4258
- 注册时间: 2009-04-11 23:46
- 系统: Arch Linux
- 联系:
Re: 如果得到指定个数的球的不同的平面图形组合?
LZ 把 shell 当成了图论?建议由此去~
-
- 帖子: 24
- 注册时间: 2011-10-09 17:57
Re: 如果得到指定个数的球的不同的平面图形组合?
先不说制图的事,能不能用shell表达出不同结构的信息?fnan 写了:制图不是shell范围吧?
- 月下叹逍遥
- 论坛版主
- 帖子: 33994
- 注册时间: 2010-10-07 14:23
- 系统: Archdows10
- 来自: 某系某星某洲某国某省某市
- 联系:
-
- 帖子: 919
- 注册时间: 2009-07-01 22:04
Re: 如果得到指定个数的球的不同的平面图形组合?
可以,赋予字符特殊含义,能描述图形。njutwc 写了:先不说制图的事,能不能用shell表达出不同结构的信息?fnan 写了:制图不是shell范围吧?
例子:
q=原生球
Q=再生球
t=图形
b=闭环
k=开环
t1q1q2q3q4k #意味图形1由四个小球组成一直线(开环)。
t2q1q2q3q4b #图形2由四小球组成四边形(闭环)。
t3q1q2kQ2q3q4b #图形3。。。(参考lz的图1.jpg第三图)
#不如图形直观,可用于计算。
上次由 fnan 在 2011-10-22 20:54,总共编辑 1 次。
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
-
- 帖子: 919
- 注册时间: 2009-07-01 22:04
Re: 如果得到指定个数的球的不同的平面图形组合?
lz的问题接触到人工智能了,难度很高,shell是不便,但也可以试试,有兴趣的不妨玩玩,不需保证成功的。月下叹逍遥 写了:这个有些难度吧。。。建议使用专业的数学工具,比如fortran或者matlab。。。
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
-
- 帖子: 24
- 注册时间: 2011-10-09 17:57
Re: 如果得到指定个数的球的不同的平面图形组合?
这样也不错,呵呵。只是得避免重复的可能。要不然到八个球,估计吃不消了。fnan 写了:可以,赋予字符特殊含义,能描述图形。njutwc 写了:先不说制图的事,能不能用shell表达出不同结构的信息?fnan 写了:制图不是shell范围吧?
例子:
q=原生球
Q=再生球
t=图形
b=闭环
k=开环
t1q1q2q3q4k #意味图形1由四个小球组成一直线(开环)。
t2q1q2q3q4b #图形2由四小球组成四边形(闭环)。
t3q1q2kQ2q3q4b #图形3。。。(参考lz的图1.jpg第三图)
#不如图形直观,可用于计算。
-
- 帖子: 919
- 注册时间: 2009-07-01 22:04
Re: 如果得到指定个数的球的不同的平面图形组合?
零起点没法直接用最好优先搜索算法,很多细节不明,lz的图例也没有包含全部结构和反例,只能先暴力搜索解决1到4小球的情况,过了将抽象概念转为实际数据的瓶颈再说。
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
-
- 帖子: 24
- 注册时间: 2011-10-09 17:57
Re: 如果得到指定个数的球的不同的平面图形组合?
我只是象征性的提供几个图而已,当然不是很全啦,那初步先考虑1-4个球的图的组合,往后再考察多个球的规律。拜托啦fnan 写了:零起点没法直接用最好优先搜索算法,很多细节不明,lz的图例也没有包含全部结构和反例,只能先暴力搜索解决1到4小球的情况,过了将抽象概念转为实际数据的瓶颈再说。
-
- 帖子: 105
- 注册时间: 2008-11-03 10:06
Re: 如果得到指定个数的球的不同的平面图形组合?
你这玩意,去数学吧里先问问算法再说。
这复杂的问题不是SHELL能不能实现,尼玛这东西精髓在算法。
这复杂的问题不是SHELL能不能实现,尼玛这东西精髓在算法。
-
- 帖子: 105
- 注册时间: 2008-11-03 10:06
Re: 如果得到指定个数的球的不同的平面图形组合?
你想出算法来,我给你写个C程序跑。
我不想动脑筋想算法,累。
我不想动脑筋想算法,累。
-
- 帖子: 919
- 注册时间: 2009-07-01 22:04
Re: 如果得到指定个数的球的不同的平面图形组合?
时间关系先给个简单框架,大家给给意见,不管对错,慢慢改进:
代码: 全选
#!/bin/bash
unset p[*] #图形集合副本
unset t[*] #图形集合
unset s[*] #图形结构集合
q=0
Q=0
ball=0
while ((++ball));do
if [[ $ball -eq 1 ]];then
t[1]='q1k'
continue
elif [[ $ball -gt $1 ]];then #循环完打印所有图形并退出。
for i in ${!t[@]};do
echo "t$i${t[$i]}"
done
exit
fi
#开始计算两个或以上小球的组合结构:
for i in ${!t[@]};do
p[$i]="${t[$i]}"
done
unset t[*]
p_ind=0
t_ind=0
while ((++p_ind<=${#p[@]}));do
s=(${p[$p_ind]}) #分解图形结构。
#开始结构进化:
for i in ${!s[@]};do
s[$i]="q$ball${s[$i]}" #线状进化。
t[$((++t_ind))]="${s[@]}"
done
done
done
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
-
- 帖子: 24
- 注册时间: 2011-10-09 17:57
Re: 如果得到指定个数的球的不同的平面图形组合?
fnan 写了:时间关系先给个简单框架,大家给给意见,不管对错,慢慢改进:代码: 全选
#!/bin/bash unset p[*] #图形集合副本 unset t[*] #图形集合 unset s[*] #图形结构集合 q=0 Q=0 ball=0 while ((++ball));do if [[ $ball -eq 1 ]];then t[1]='q1k' continue elif [[ $ball -gt $1 ]];then #循环完打印所有图形并退出。 for i in ${!t[@]};do echo "t$i${t[$i]}" done exit fi #开始计算两个或以上小球的组合结构: for i in ${!t[@]};do p[$i]="${t[$i]}" done unset t[*] p_ind=0 t_ind=0 while ((++p_ind<=${#p[@]}));do s=(${p[$p_ind]}) #分解图形结构。 #开始结构进化: for i in ${!s[@]};do s[$i]="q$ball${s[$i]}" #线状进化。 t[$((++t_ind))]="${s[@]}" done done done
乖乖,恁复杂了点,里面还得添点东西,辛苦啦
-
- 帖子: 24
- 注册时间: 2011-10-09 17:57
Re: 如果得到指定个数的球的不同的平面图形组合?
算法问了N多人了,都不靠谱,关键是在同构上如何排除,要不然个数增加,异构体呈几何级数增加,很恐怖滴formylove2 写了:你想出算法来,我给你写个C程序跑。
我不想动脑筋想算法,累。