闭包算法
来源:互联网 发布:mfp126a 有网络口吗 编辑:程序博客网 时间:2024/06/02 03:30
问题描述
根据求属性集闭包的算法,用你熟悉的语言编写程序,要求如下:
1. 由用户输入函数依赖,当用户输入End时,表示所有依赖都输入完毕。(即函数依赖是由用户自己定的,程序中不能假定某个具体的依赖)
2. 函数依赖的形式是 AB->C, A->BE 这样的形式,为了简单起见,我们假定所有的属性都是用英文的大写字母表示,由A到Z。(提示,你可以让用户先输入依赖左边的属性,然后再输入依赖右边的属性,用来表示 A->B 这样的形式)
3. 用户输入完毕所有的依赖后,显示“请输入属性集求闭包”的提示,当用户输入1个或者多个属性时,求出对应的闭包。(如,用户输入A,则显示A+的值, 用户输入AB则求出AB+的值。显示完毕后,再次显示“请输入属性集求闭包”,让用户继续输入属性,直到用户输入END后程序结束。
4. 在上面3步骤用户选择END退出后,根据求函数依赖闭包的算法,显示用户输入的函数依赖的闭包F+。
解题思路
求属性集闭包
- 假设用户输入属性AB,且用户之前输入了n个函数依赖。从第一个函数依赖开始,如果依赖左边的属性属于AB,那么将依赖右边的属性纳入到AB中,如此循环往复n2,便能得到AB+的值
求函数依赖的闭包
- 假设有n个属性,则有2n种属性集的排列组合情况。每一种属性集都根据上题求出自己的闭包,假设闭包含有m个属性,则又有2m种情况。那么,最终的函数依赖的闭包的元素的个数为2m+n
源代码
阅读全文
0 0
- 闭包算法
- Warshall 传递闭包算法
- 传递闭包 -》Warshell算法
- Swift 闭包排序算法
- Warshall传递闭包算法
- 传递闭包的warshall算法
- Warshall算法求传递闭包
- Floyd-Warshall算法(传递闭包)
- floyd算法 + 传递闭包 (poj3660Cow Contest)
- 【算法学习】快包算法
- latex 算法,算法包 algorithm
- 凸包算法综述
- 凸包算法
- 凸包 graham 算法
- 排序算法包实现
- 凸包算法求凸包点
- 凸包算法
- 凸包算法
- asp.net大文件分块上传视频教程
- 二分查找算法递归实现&&快速排序算法实现
- 分支管理策略
- (40)异常、多态、|与||的分析结果题目
- 8.ThinkPHP 3.1.2 查询方式的一般使用1
- 闭包算法
- linux修改权限
- 浙大PAT甲级-1029
- grunt官网教程(中文版)
- Android之CardView的使用
- 详解Response、Request二
- 将数组写入txt读出后数据出错
- poj 3461 kmp算法
- 代理模式