| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1144 人关注过本帖
标题:求教行全排列
取消只看楼主 加入收藏
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
结帖率:73.44%
收藏
已结贴  问题点数:20 回复次数:6 
求教行全排列
先生您好,我现在碰到一个问题,是这样:想把一个7行5列的原表转换成行全排列的新表,7行按全排列应该有5040行。我的设想是这样:先把原表转移到二维内存,再将这个二维内存写入新表,但得不到全部的5040行,代码如下,请先生指教,谢谢

CLEAR
CLOSE  all
SET SAFETY OFF
DIMENSION YB(7,5)
USE 原表
select * from 原表 into array YB
 FOR i=1 TO 7
    FOR j=1 TO 5
      ?? YB(i,j)
   ENDFOR
  ?
  ENDFOR
 USE 行全排列表
 *-----------------------
 BH=0
  FOR i=1 TO 7
    APPEND BLANK
    BH=BH+1
    FOR j=1 TO 5                 
       REPLACE  编号 WITH  BH  
       REPLACE  ('列'+ALLTRIM(STR(j))) WITH  YB(i,j)                       
    ENDFOR  
  ENDFOR
  *-----------------------------
DELETE FILE *.bak
2014-12-22 12:18
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
收藏
得分:0 
回复 2楼 hgfeng1984
先生是我没表达清楚:是这样的要求,原表有7行
列1    列2    列3    列4    列5
43    22    3    5    1
101    11    82    6    0
97    41    31    52    66
9    0    5    9    20
64    4    22    79    32
88    1    64    35    76
68    211    8    88    78
现在任意交换整行(可以是任意交换2行或3行或4行...直至7行),行的次序与原表行次序不一样就算一种新情况,据数学中的排列定理可得这样的和原表行次序不同的所有情况共有720种,现在要求把这720种情况记录到新表中,每种之间用一个空行隔开,如下只是交换6、7行一种和交换5、6行一种的两种情况
列1    列2    列3    列4    列5
43     22     3     5     1
101     11     82     6     0
97     41     31     52     66
9     0     5     9     20
64     4     22     79     32
68     211     8     88     78
88     1     64     35     76
               
43     22     3     5     1
101     11     82     6     0
97     41     31     52     66
9     0     5     9     20
88     1     64     35     76
64     4     22     79     32
68     211     8     88     78

谢谢
2014-12-22 15:37
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
收藏
得分:0 
回复 7楼 kiff
先生您好,首先感谢您的教导,您的程序我已学习,但运行下来所得的新表只是在屏幕上可以浏览,没有真正写入到新表中(当我退出系统再打开新表时新表是空文件),请教先生如何修改才能将交换的结果真正写入到新表中,谢谢先生!
2014-12-23 09:09
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
收藏
得分:0 
回复 8楼 kiff
先生您好,首先感谢您的教导,您的程序我已学习,但运行下来所得的新表只是在屏幕上可以浏览,没有真正写入到新表中(当我退出系统再打开新表时新表是空文件),请教先生如何修改才能将交换的结果真正写入到新表中,谢谢先生!
2014-12-23 09:09
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
收藏
得分:0 
回复 11楼 kiff
先生通过了,谢谢指教,诚挚的感谢
2014-12-23 14:28
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
收藏
得分:0 
回复 5楼 sdta
先生圣诞快乐
2014-12-25 10:19
fdxxhjc
Rank: 1
等 级:新手上路
帖 子:305
专家分:0
注 册:2014-4-10
收藏
得分:0 
回复 5楼 sdta
先生您好,前次曾请教过您关于任意交换整行(那次是共7行的问题,可以是任意交换2行或3行或4行...直至7行),行的次序与原表行次序不一样就算一种新情况。现在请教关于任意交换“整块”的问题:是这样,共5块,每块5行5列(既然是“整块”交换,故我想每块几行几列是无关的),块的次序与原表中块的次序不一样时就算得到一种新情况,谢谢先生指教,诚挚的感谢(下面所附的每块5行5列粘在一起了,在excel表中比较明显)
1    2    3    4    5
6    7    8    9    10
11    12    13    14    15
16    17    18    19    20
21    22    23    24    25
26    27    28    29    30
31    32    33    34    35
36    37    38    39    40
41    42    43    44    45
46    47    48    49    50
51    52    53    54    55
56    57    58    59    60
61    62    63    64    65
66    67    68    69    70
71    72    73    74    75
76    77    78    79    80
81    82    83    84    85
86    87    88    89    90
91    92    93    94    95
96    97    98    99    100
101    102    103    104    105
106    107    108    109    110
111    112    113    114    115
116    117    118    119    120
121    122    123    124    125
2015-01-07 09:05
快速回复:求教行全排列
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011987 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved