磁带最优存储

题目描述

设有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是Li, 1<= i<= n。这n 个程序的读取概率分别是p1,p2,…,pn,且pi+p2+…+pn = 1。如果将这n 个程序按 i1,i2,…,in 的次序存放,则读取程序ir 所需的时间tr=c*(Pi1Li2+Pi2Li2+…+Pir*Lir)。这n 个程序的平均读取 时间为t1+t2+…+tn。 磁带最优存储问题要求确定这n 个程序在磁带上的一个存储次序,使平均读取时间达到 最小。试设计一个解此问题的算法,并分析算法的正确性和计算复杂性。 编程任务: 对于给定的n个程序存放在磁带上的长度和读取概率,编程计算n个程序的最优存储方 案。

输入
由文件input.txt给出输入数据。第一行是正整数n,表示文件个数。接下来的n行中,
每行有2 个正整数a 和b,分别表示程序存放在磁带上的长度和读取概率。实际上第k个程
序的读取概率ak/(a1+a2+…+an)。对所有输入均假定c=1。
输出

输出一个实数,保留1位小数,表示计算出的最小平均读取时间。
示例输入

5
71 872
46 452
9 265
73 120
35 87

示例输出

85.6
分析:按读取概率从小到大排列,排列好的顺序就是最优顺序

#include <iomanip>
#include<string.h>
using namespace std;
typedef struct jojo
{int data;double p;double res;
}wwh;
bool cmp(wwh a, wwh b)
{return a.res<b.res;
}
int main()
{ifstream file;ofstream file1;file1.open("file2.txt");file.open("data.txt");int N;file>>N;wwh wwh1[N];for(int i=0;i<N;i++){file>>wwh1[i].data>>wwh1[i].p;}double sum=0;for(int i=0;i<N;i++){sum+=wwh1[i].p;}for(int i=0;i<N;i++){wwh1[i].p/=sum;wwh1[i].res=wwh1[i].p*wwh1[i].data;}sort(wwh1, wwh1+N, cmp);double sum1[N];memset(sum1, 0, sizeof(sum1));for(int i=0;i<N;i++){for(int j=0;j<=i;j++){sum1[i]+=wwh1[j].res;}}double sum2=0;for(int i=0;i<N;i++){sum2+=sum1[i];}file1<<sum2;cout<<sum2;file1.close();file.close();
}

磁盘最优存储

题目描述

题意:设磁盘上有n个文件,f1,f2,…,fn,,每个文件占磁盘上1个磁道。这n个文件的检索概率分别是p1,p2,…,pn,且p1+p2+…+pn =1。磁头从当前磁道移到被检信息磁道所需的时间可用这2个磁道之间的径向距离来度量。如果文件pi存放在第i道上,1<i<n ,则检索这n 个文件的期望时间是 ∑【PiPjd(i,j)】 ,其中 d(i,j)是第i道与第j 道之间的径向距离|i-j|
要求:
输入:第1行是正整数n,表示文件个数。第2行有n个正整数ai,表示文件的检索概率。
输出:计算出的最小期望检索时间。

思路:
先将n个文件按访问概率从大到小排序,概率最大的应该放中间,次大的和次次大的放最大的两边,再小一点的再放在次大的左边和次次大的右边

#include<stdio.h>
#include<algorithm>
#include<iostream>
using namespace std;
bool cmp(double a, double b)
{return a>b;
}
int main()
{int N;cin>>N;double file[N];double sum=0; for(int i=0;i<N;i++){cin>>file[i];sum+=file[i];}for(int i=0;i<N;i++){file[i]/=sum;}double sum1=0;sort(file, file+N, cmp);int mid=(N-1)/2;double a[N];a[mid]=file[0];for(int i=mid-1;i>=0;i--){a[i]=file[0+2*mid-2*i-1];//新下标与老下标之间有函数关系}for(int i=mid+1;i<N;i++){a[i]=file[2*i-2*mid];//新下标与老下标之间有函数关系}for(int i=0;i<N;i++){for(int j=i+1;j<N;j++){sum1+=a[i]*a[j]*(j-i);}}cout<<sum1;
}

磁盘最优存储与磁带最优存储问题相关推荐

  1. 贪心:磁带最优存储与磁盘文件最优存储

    1.磁带最优存储问题 Input: 5 71 872 46 452 9 265 73 120 35 87 Output: 85.6193 Code: #include <bits/stdc++. ...

  2. 贪心问题(Python代码实现)——磁带最优存储问题

    文章目录 磁带最优存储问题 贪心策略 问题模型 python实现代码 Python知识小结 关于Python sort sort()与sorted()的区别 今早任务--贪心算法,Python代码实现 ...

  3. 贪心算法-磁带最优存储问题

    贪心算法通常是对某一值进行排序,然后再采取贪心策略进行求解.此问题贪心角度不同以往,它是对两因素进行综合处理.将它们的乘积进行排序. 题意:设有n 个程序{1,2,-, n }要存放在长度为L的磁带上 ...

  4. 算法设计与分析: 4-3 磁带最优存储问题

    4-3 磁带最优存储问题 问题描述 设有 n 个程序{1,2,...,n}{1,2,...,n}\{1,2,..., n\}要存放在长度为 L 的磁带上.程序 i 存放在磁带上的长度是 lilil_i ...

  5. 【建议收藏】15755字,讲透MySQL性能优化(包含MySQL架构、存储引擎、调优工具、SQL、索引、建议等等)

    0. 目录 1)MySQL总体架构介绍 2)MySQL存储引擎调优 3)常用慢查询分析工具 4)如何定位不合理的SQL 5)SQL优化的一些建议 1 MySQL总体架构介绍 1.1 MySQL总体架构 ...

  6. 【HBase调优】Hbase万亿级存储性能优化总结

    [HBase调优]Hbase万亿级存储性能优化总结 2017-04-07 背景:HBase主集群在生产环境已稳定运行有1年半时间,最大的单表region数已达7200多个,每天新增入库量就有百亿条,对 ...

  7. 算法复习之磁带最优储存问题

    题目描述 设有n 个程序{1,2,-, n }要存放在长度为L的磁带上.程序i存放在磁带上的长度是Li, 1<= i<= n.这n 个程序的读取概率分别是p1,p2,-,pn,且pi+p2 ...

  8. MySQL性能调优与架构设计(二)—— MySQL存储引擎简介

    什么是存储引擎 mysql中的数据用各种不同的技术存储在文件(或者内存)中. 这些技术中每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力. 通过选择不同的技术,你能 ...

  9. 【建议收藏】15755 字,讲透 MySQL 性能优化(包含 MySQL 架构、存储引擎、调优工具、SQL、索引、建议等等)

    0. 目录 1)MySQL 总体架构介绍 2)MySQL 存储引擎调优 3)常用慢查询分析工具 4)如何定位不合理的 SQL 5)SQL 优化的一些建议 1 MySQL 总体架构介绍 1.1 MySQ ...

最新文章

  1. 异常规范之异常的概念
  2. 【普通の随笔】6.30
  3. 方形物体绕中心旋转的扭力_转轴扭力测试方案
  4. 推荐系统如何一键实现工业级部署? ElasticCTR 百度开讲
  5. 目标检测(九)--YOLO v1,v2,v3
  6. HTML5form表单的相关知识总结
  7. Animate.css动画库下载、安装、使用与解析
  8. AR Camera开发记录(三) -- 替换人脸贴图
  9. wim工具扫描linux磁盘,图文解说WIMTOOL的安装及利用该工具编辑WIM文件
  10. windows 11激活Office提示网络问题无法激活
  11. 二叉树先序递归遍历,中序递归非递归遍历实验
  12. 什么是mx记录?如何设置域名mx记录?
  13. MySQL入门学习的第一节(SQL语句)
  14. (4)AES分组加密算法(原理详解)
  15. 磁盘挂载报错/dev/sdb1 is apparently in use by the system
  16. 英语六级作文模板,写作小白救星
  17. Vue过滤器的几种用法
  18. USB UVC协议分析
  19. html 体温单源码,体温单 三色单
  20. 《信息化项目软件运维费用测算规范》等两项北京地标正式报批

热门文章

  1. python 爬取财经新闻股票_Python进阶量化交易专栏场外篇20-爬虫抓取股票论坛帖子...
  2. 【Linux基础与服务管理——常用集群高性能负载均衡器 HAProxy】
  3. 陶瓷电容的ESR-谐振频率去哪儿查?
  4. qt之TCP/IP通信客户端与服务器自动连接互相传输数据
  5. 制造行业流程管理的“IPO”思维
  6. 什么无线桥接一直正在链接服务器失败,tplink无线桥接失败怎么办?
  7. 新一期ARM作业(七)----Nand Flash
  8. PCMCIA引脚定义
  9. php安装sqlsrv扩展
  10. c语言考试 程序填空题,计算机二级C语言程序填空题练习题