论坛: 编程破解 标题: 请教一个排列问题 复制本贴地址    
作者: tetley [tetley]    论坛用户   登录
我想编一个程序去排列一个有许多logic gate 的图.就是说有许多logic gate是无序排列, 但它们之间是联系着的, 就象GATE1 和 GATE2 的输出是GATE3 的输入.  我想编的程序是要把它们排成一个排列很清楚的线路图 ,自己建一个画板并写程序画出来. 有没有人知道用什么方法呀?这个图中可能包含1000 个LOGIC GATE 所以要有一个好方法来排列它们. 谁有想法呀?


[此贴被 tetley(tetley) 在 10月31日09时16分 编辑过]

地主 发表时间: 10/31 09:11

回复: tetley [tetley]   论坛用户   登录
怎么没人回呀?

B1层 发表时间: 11/04 18:50

回复: tetley [tetley]   论坛用户   登录
有没有人能帮帮我呀?


B2层 发表时间: 11/07 09:16

回复: ltb [ltb]   论坛用户   登录
我不知道,我顶

B3层 发表时间: 11/07 09:38

回复: 286 [unique]   版主   登录
难度较大,同志需努力,呵呵。
不是逻辑门技术上的难道,而是画图方面的难度。

B4层 发表时间: 11/07 10:00

回复: tetley [tetley]   论坛用户   登录
补充一下, 逻辑门可以用以下表达.
0 | 1 2 3 _ 4 5 6 _ 7 8 9
0: 逻辑门号码
1: 逻辑门种类
6: 逻辑门的输入个数
7,8,9:逻辑门的输入
例如
3| 2 2 4 _ 5 6 2 _ 1 2 4
代表
逻辑门3是一个2号门, 有2个输入,分别是逻辑门1和2.
 

B5层 发表时间: 11/08 06:02

回复: wk [truewangk]   论坛用户   登录
我想应该从一头开始,要么输入要么输出。比如说从输出且比如说是两个(A,B},可以先将放在最右侧一列,然后找和他们直接相连的门,放在倒数第二列。循环直到将所有的门放完,然后连线。当然这不是最优的,但应该是比较简单的,如果需要的话,我可以在帮你想想有没有更好的办法,这应该是拓扑学的问题吧。

B6层 发表时间: 11/08 11:29

回复: tetley [tetley]   论坛用户   登录
楼上的方法我想可以用来排列列, 但排列行就不行了。而且不好选那个有优先排列权
还有没有别的方法?

B7层 发表时间: 11/08 20:37

回复: tetley [tetley]   论坛用户   登录
我有一个偷懒的方法, 就是将逻辑门的位置布好之后(根据每一个门的最靠后的一个输入, 将此门排在它之后),列出排和列来,连线时根据一列之中有多少个门(N), 画 N 条垂直的线在此列和下一列之间, 每一条线连前一列的每一个门, 那么, 以后的门要调用前边门的输出的话, 就直接将它的输入连到这个门的线上 (直线), 就不用拐来拐去了. 这个方法100% 不是最优, 但很简单去编程序去画, 画出来的图会很大, 可能要 ( N个门*每个门的大小 ).没法在这画图, 大家可能看不懂.
:-/


B8层 发表时间: 11/17 10:41

回复: cjyyg [cjyyg]   论坛用户   登录
你编的还有点水准。。。。

B9层 发表时间: 11/18 13:01

回复: tetley [tetley]   论坛用户   登录
有没有谁还能给点建议呀?


B10层 发表时间: 11/20 09:44

回复: ziaichen [ziaichen]   论坛用户   登录
呵呵,不会呀
我顶


[此贴被 ziaichen(ziaichen) 在 11月20日17时39分 编辑过]

B11层 发表时间: 11/20 16:49

回复: tetley [tetley]   论坛用户   登录
哪位会用borland c++ builder 在 Form 上贴图呀? 动态的,我想用来贴逻辑门的bmp 图, 但图的数量不确定, 所以我想动态的好一些, 就是说用指针。
用vcl 或 api 都可以。

B12层 发表时间: 11/23 08:13

回复: tetley [tetley]   论坛用户   登录
怎么没人回呀, 自己顶顶。

B13层 发表时间: 11/28 21:02

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号