社区
数据结构与算法
帖子详情
有点难的问题
jp1984
2006-09-23 04:20:58
给出的是一应用问题的抽象
给定N个基数为4(就是元素个数为4)的集合,且每两个集合的交集元素个数不超过1。求所有这N个集合中最少有多少不相同的元素。
...全文
473
25
打赏
收藏
有点难的问题
给出的是一应用问题的抽象 给定N个基数为4(就是元素个数为4)的集合,且每两个集合的交集元素个数不超过1。求所有这N个集合中最少有多少不相同的元素。
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
25 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mathe
2006-09-27
打赏
举报
回复
galois_godel的公式能够用我的推导出来
4*n<=m*[(m-1)/3]<=m*(m-1)/3
所以
n<=m*(m-1)/12=C(m,2)/6=C(m,2)/C(4,2)
mathe
2006-09-27
打赏
举报
回复
galois_godel的结论有问题:
n<16 时候,
16n/(n+3) 是整数时, m=16n/(n+3) ,
16n/(n+3) 不是整数时, m=1+[16n/(n+3)] ,
我们取n=15,那么16*15/18=13.333...
所以m=14
实际上,根据我的结论
4*n<=m*[(m-1)/3]
m=14不满足条件,至少要m=15
dengsf
2006-09-27
打赏
举报
回复
galois_godel 能否说说式子的推导过程?
tailzhou
2006-09-27
打赏
举报
回复
mathe的公式最少还得加上n的限制;不是对任何的n都能成立的;
比如n=3;
用mathe的公式4*n<=m*[(m-1)/3],那么m>=7,但7个元素最多只可能组成两个集合;
S1*3<=m-1是成立的,但有可能这个条件还是太宽松了。
galois_godel的公式
n<16 时候,
16n/(n+3) 是整数时, m=16n/(n+3) ,
16n/(n+3) 不是整数时, m=1+[16n/(n+3)] ,
当n=3时,m=16*3/6=8; 8个元素也是不可能组成3个集合的(两个集合就用去了7个数,从这两集合各取一个,加上剩下的一个,还差一个数);
galois_godel
2006-09-26
打赏
举报
回复
n<16 时候,
16n/(n+3) 是整数时, m=16n/(n+3) ,
16n/(n+3) 不是整数时, m=1+[16n/(n+3)] ,
n>=16 时候,从 n< C(M,2)/C(4,2) 可以算出 m 的上界,
galois_godel
2006-09-26
打赏
举报
回复
现在可以说了
你能说明下你的公式吗?
感觉是错的,这道题目不简单的,是一个特殊的区组设计
weijiangshanwww
2006-09-26
打赏
举报
回复
BZ不要降我的信誉,我开始不知道是竞赛题目,但是我回答了,一定要做完(这是原则),我下次会注意问题了。而且这问题不难,很多人都能回答的。
weijiangshanwww
2006-09-26
打赏
举报
回复
N>5 时:(N-N%5)/5*10+(N%5)*4-(N%5)选2的组合数
crazy_lazy_pig
2006-09-26
打赏
举报
回复
初看此题,感觉用容斥原理做一下就行了:
z = 4*N - C(N,2)*1 + C(N,3)*x3 - C(N,4)*x4 + C(N,5)*x5 - C(N,7)*x7 + ...
其中xi是个分数, 分母是C(N,i), 分子就是i个集合交不为空的组合的个数.
下面的任务就是让前面是负号的仅可能大,是正号的尽可能小, 但是具体算法恐怕要对具体的N进行分析了.
weijiangshanwww
2006-09-26
打赏
举报
回复
上面我还是有点不明白,N是代表什么?
weijiangshanwww
2006-09-26
打赏
举报
回复
呵呵,谢谢楼上的纠正。我对题目的理解有误!
mathe
2006-09-26
打赏
举报
回复
如果总共需要m个不同元素.
那么
假设有S1个集合使用了第一个元素,S2个集合使用了第二个元素,...,Sm个集合使用了第m个元素.
那么所有使用了第一个元素的集合(共S1个),除了第一个元素以外,没有其他公共元素,所以
S1*3<=m-1
也就是S1<=[(m-1)/3]
同理,S2,...,Sm都满足上面条件
由于S1+S2+...+Sm=4*N
我们可以得到
4*N<=m*[(m-1)/3]
比如N=10
那么
4N<=m*[(m-1)/3]就要求m>=13.
weijiangshanwww
2006-09-26
打赏
举报
回复
如果是13个的话,计算一下,最多只能共享一个元素对吗,如果有四个元素就必须和另外的四个集合共享一个相同的元素(这情况就是点最少的情况)。如果在两个多边形的时候,10个集合,按照BZ说的13个点,每个集合共享出来一个元素,那么至少也要20个。怎么会是13个?
weijiangshanwww
2006-09-26
打赏
举报
回复
我之所以用五边形是因为它刚刚好四个元素完全共享了。新来的点当然只能不被共享任何元素,也就是共享的元素的个数为零的情况了。
weijiangshanwww
2006-09-26
打赏
举报
回复
两个五边形是独立的,已经饱和了,不能在添加新的点!
galois_godel
2006-09-26
打赏
举报
回复
找你的说法,n=10, 两个五边形 不是要20个,
应该13个就可以了
weijiangshanwww
2006-09-26
打赏
举报
回复
我的想法是把这个问题转化成几何的问题,在完全连通图形中,五边形的每个顶点都是和另外的四个点共享一条边。这样达到一种饱和状态。
当来了第六个点的时候(也就是第六个集合的时候),该点不能和其他的点有公共边,这样逐个的增加(新来的点和新来的点之间进行边的共享),当有10个点的时候,就刚刚好是两个五边形。而且都能够共享10条边。
galois_godel
2006-09-25
打赏
举报
回复
研究生数模竞赛题,目前比赛还没有结束,比完了再讨论吧
weijiangshanwww
2006-09-25
打赏
举报
回复
N>5 时:(N-N%4)/4*10+(N%4)*4-(N%4)选2的组合数
weijiangshanwww
2006-09-25
打赏
举报
回复
N>5 时(N-N%4)/4 *10+(N%4)*4-(N%4)
加载更多回复(4)
Hive处理案例——Zebra业务数据清洗
Zebra业务回顾 zebra业务回顾 zebra项目最开始阶段会对日志文件进行分析统计,针对apptype,userip等20个字段做了统计,然后把最后的结果落地到数据库里。这张表相当于总表(f_http_app_host) 在企业里做到这步并没有结束,因为后续还要做数据分析,可能会针对此表进行多个维度的查询和统计,比如: 1.应用欢迎度 2.各网站表现 3.小区Http上网能力 4.小区上网...
hive快速入门——Zebra中的应用
转载于:https://www.cnblogs.com/mubeier/p/9711659.html
大数据开发知识汇总
大数据开发需要学习的知识很多,目前基本包括如下知识Linux、Zebra、Hadoop、Flume、Hive、Hbase、Phoenix、Storm、Kafka、Scala、Spark Linux: Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应...
Apache Pig入门1 –介绍/基本架构/与Hive对比
一、介绍 Google的工程师为了方便自己对MapReduce的实现搞了一个叫做Sawzall的工具,Google就放了几篇论文放在网上,但这玩意在代码上不开源在设计思想是开源的,在前面一篇文章中我也提到过Hadoop也推出了类似Sawzall的Pig语言,就是根据Google放出来的论文山寨的。 Pig是对处理超大型数据集的抽象层,在MapReduce中的框架中有map和reduce两个
电信日志处理
电信日志处理
数据结构与算法
33,026
社区成员
35,334
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章