业务描述:
1到n个对象,每两两存在一个是非关系(双向)。现求出所有最大不重复分组,其中分组当中的每两两元素关系为是的关系。业务抽象:
1到n个人,每两个人存在一个朋友关系(是或者否),求n人当中所有的不同的最大朋友圈(圈子当中随便两个人都是朋友)。实例:有8个人,他们的朋友关系如图(其中有边相连接表示互为朋友关系)那么所有的最大不重复朋友圈子为
{1,2,3,4}
{2,6,7}
{4,5}
{5,6}
{7,8}
{2,8}
本来{1,2,3}也是一个朋友圈,但是它是{1,2,3,4}的子集,所以排除{1,2,3}
oracle数据库设计
建表语句
/*==============================================================*/
/* DBMS name: ORACLE Version 10g */
/* Created on: 2011/10/14 15:15:47 */
/*==============================================================*/
DROP TABLE TEST CASCADE CONSTRAINTS;/*==============================================================*/
/* Table: TEST */
/*==============================================================*/
CREATE TABLE TEST (
USER_NAME VARCHAR2(10),
REF_USERNAME VARCHAR2(10),
RELATION VARCHAR2(1)
);
插入数据
INSERT INTO test (user_name, ref_username, relation) VALUES ('1','2','Y');
INSERT INTO test (user_name, ref_username, relation) VALUES ('1','3','Y');
INSERT INTO test (user_name, ref_username, relation) VALUES ('1','4','Y');
INSERT INTO test (user_name, ref_username, relation) VALUES ('1','5','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('1','6','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('1','7','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('1','8','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('1','9','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('1','10','N');
--------------------------------------------------------------------------
INSERT INTO test (user_name, ref_username, relation) VALUES ('2','3','Y');
INSERT INTO test (user_name, ref_username, relation) VALUES ('2','4','Y');
INSERT INTO test (user_name, ref_username, relation) VALUES ('2','5','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('2','6','Y');
INSERT INTO test (user_name, ref_username, relation) VALUES ('2','7','Y');
INSERT INTO test (user_name, ref_username, relation) VALUES ('2','8','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('2','9','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('2','10','N');
--------------------------------------------------------------------------
INSERT INTO test (user_name, ref_username, relation) VALUES ('3','4','Y');
INSERT INTO test (user_name, ref_username, relation) VALUES ('3','5','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('3','6','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('3','7','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('3','8','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('3','9','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('3','10','N');
--------------------------------------------------------------------------
INSERT INTO test (user_name, ref_username, relation) VALUES ('4','5','Y');
INSERT INTO test (user_name, ref_username, relation) VALUES ('4','6','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('4','7','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('4','8','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('4','9','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('4','10','N');
--------------------------------------------------------------------------
INSERT INTO test (user_name, ref_username, relation) VALUES ('5','6','Y');
INSERT INTO test (user_name, ref_username, relation) VALUES ('5','7','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('5','8','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('5','9','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('5','10','N');
--------------------------------------------------------------------------
INSERT INTO test (user_name, ref_username, relation) VALUES ('6','7','Y');
INSERT INTO test (user_name, ref_username, relation) VALUES ('6','8','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('6','9','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('6','10','N');
--------------------------------------------------------------------------
INSERT INTO test (user_name, ref_username, relation) VALUES ('7','8','Y');
INSERT INTO test (user_name, ref_username, relation) VALUES ('7','9','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('7','10','N');
--------------------------------------------------------------------------
INSERT INTO test (user_name, ref_username, relation) VALUES ('8','9','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('8','10','N');
--------------------------------------------------------------------------
INSERT INTO test (user_name, ref_username, relation) VALUES ('9','10','N');
1到n个对象,每两两存在一个是非关系(双向)。现求出所有最大不重复分组,其中分组当中的每两两元素关系为是的关系。业务抽象:
1到n个人,每两个人存在一个朋友关系(是或者否),求n人当中所有的不同的最大朋友圈(圈子当中随便两个人都是朋友)。实例:有8个人,他们的朋友关系如图(其中有边相连接表示互为朋友关系)那么所有的最大不重复朋友圈子为
{1,2,3,4}
{2,6,7}
{4,5}
{5,6}
{7,8}
{2,8}
本来{1,2,3}也是一个朋友圈,但是它是{1,2,3,4}的子集,所以排除{1,2,3}
oracle数据库设计
建表语句
/*==============================================================*/
/* DBMS name: ORACLE Version 10g */
/* Created on: 2011/10/14 15:15:47 */
/*==============================================================*/
DROP TABLE TEST CASCADE CONSTRAINTS;/*==============================================================*/
/* Table: TEST */
/*==============================================================*/
CREATE TABLE TEST (
USER_NAME VARCHAR2(10),
REF_USERNAME VARCHAR2(10),
RELATION VARCHAR2(1)
);
插入数据
INSERT INTO test (user_name, ref_username, relation) VALUES ('1','2','Y');
INSERT INTO test (user_name, ref_username, relation) VALUES ('1','3','Y');
INSERT INTO test (user_name, ref_username, relation) VALUES ('1','4','Y');
INSERT INTO test (user_name, ref_username, relation) VALUES ('1','5','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('1','6','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('1','7','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('1','8','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('1','9','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('1','10','N');
--------------------------------------------------------------------------
INSERT INTO test (user_name, ref_username, relation) VALUES ('2','3','Y');
INSERT INTO test (user_name, ref_username, relation) VALUES ('2','4','Y');
INSERT INTO test (user_name, ref_username, relation) VALUES ('2','5','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('2','6','Y');
INSERT INTO test (user_name, ref_username, relation) VALUES ('2','7','Y');
INSERT INTO test (user_name, ref_username, relation) VALUES ('2','8','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('2','9','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('2','10','N');
--------------------------------------------------------------------------
INSERT INTO test (user_name, ref_username, relation) VALUES ('3','4','Y');
INSERT INTO test (user_name, ref_username, relation) VALUES ('3','5','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('3','6','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('3','7','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('3','8','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('3','9','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('3','10','N');
--------------------------------------------------------------------------
INSERT INTO test (user_name, ref_username, relation) VALUES ('4','5','Y');
INSERT INTO test (user_name, ref_username, relation) VALUES ('4','6','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('4','7','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('4','8','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('4','9','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('4','10','N');
--------------------------------------------------------------------------
INSERT INTO test (user_name, ref_username, relation) VALUES ('5','6','Y');
INSERT INTO test (user_name, ref_username, relation) VALUES ('5','7','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('5','8','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('5','9','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('5','10','N');
--------------------------------------------------------------------------
INSERT INTO test (user_name, ref_username, relation) VALUES ('6','7','Y');
INSERT INTO test (user_name, ref_username, relation) VALUES ('6','8','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('6','9','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('6','10','N');
--------------------------------------------------------------------------
INSERT INTO test (user_name, ref_username, relation) VALUES ('7','8','Y');
INSERT INTO test (user_name, ref_username, relation) VALUES ('7','9','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('7','10','N');
--------------------------------------------------------------------------
INSERT INTO test (user_name, ref_username, relation) VALUES ('8','9','N');
INSERT INTO test (user_name, ref_username, relation) VALUES ('8','10','N');
--------------------------------------------------------------------------
INSERT INTO test (user_name, ref_username, relation) VALUES ('9','10','N');
解决方案 »
- 急急急!求解决!
- url对用的参数不同,显示的图片大小不同的问题,求思路【高分】
- 关于java读取word完整内容
- jsp在线聊天系统
- 想做个功能强大的bbs论坛,找不到模板!
- struts2 输入校验
- 关于动态计算公式的问题,小弟快想疯了
- 需要一份"手机号码归属地查询数据库",那位大侠有,小弟100分相求!
- 初学javaweb进行客户端验证练习遇到的问题
- form method="post" action="mailto:[email protected]?Subject=灏良&body=你好"
- 简单的修改密码出了问题
- 求amchart 拆线图(amline)如何在配置文件里面配置两个value,也就是两条Y坐标
第二个人 {1 0 1 1 0 1 1 0}
第三个人 ***
第八个人{}
1表示Y,0表示N
{0 1 1 1 0 0 0 1}
表示xx和第一个人无关系,和第二个三个八个有关系
这样就把向量都列出来了
接着求极大非线性相关组就可以了
数学模型建立完成了
接下来就是程序了。
先把向量搞成矩阵形式,用java模拟一下就出来这个难度不大。然后再把矩阵化成最简形式(方法可以去查高代书或者baidu)
再把最简形式中所有非0向量拿出来,得到这些向量的位置(比如第一行的向量就是第一个人)
那么这些非0向量就是你想要的结果