当前位置: 首页 > news >正文

【多媒体技术与实践】音频信息获取和处理——编程题汇总

1:音频信息数据量计算

已知采样频率(单位KHz)、量化位数、声道数及持续时间(单位分钟),求未压缩时的数据量(单位MB).

例如:

输入: 22.05 16 2 3 (空格分隔)

输出:15.1MB(保留小数点后一位)

#include <stdio.h>int main(){float freq,bit,path,time;scanf("%f %f %f %f",&freq,&bit,&path,&time);//cin>>freq>>bit>>path>>time;float memory=freq*1000*bit*path*time*60/8;memory/=1048576;printf("%.1fMB",memory);return 0;
}

注:此题注意最后需要加【MB】字样,否则无法ac。

2:采用算术编码给输入的字符序列进行编码,输出数值区间

该字符序列中含有a,b,c,d5个字符,输入为各字符的出现概率,及需要编码的字符序列,输出为算术编码区间(保留小数点后10位)。

例如:

输入:

0.2  0.3 0.1 0.15 0.25(空格分隔)

aaabded (待编码字符序列)

输出:

0.0033640000 

0.0033775000

#include <iostream>
using namespace std;
#include <stdio.h>
#include <string.h>int main(){double a,b,c,d,e;cin>>a>>b>>c>>d>>e;char wait[100];scanf("%s",wait);double aa,bb,cc,dd,left=0,right=1;int len=strlen(wait);aa=a;bb=a+b;cc=a+b+c;dd=a+b+c+d;for(int i=0;i<len;i++){char t=wait[i];double gap=right-left;double myleft=left;if(t=='a'){right=gap*aa+myleft;}else if(t=='b'){left=gap*aa+myleft;right=gap*bb+myleft;}else if(t=='c'){left=gap*bb+myleft;right=gap*cc+myleft;}else if(t=='d'){left=gap*cc+myleft;right=gap*dd+myleft;}else{left=gap*dd+myleft;}}printf("%.10f\n%.10f",left,right);return 0;
}

3:对采用算术编码的符号序列进行译码,输出原始的符号序列

对于由a,b,c,d,e 5个符号组成的符号序列,输入各符号的出现概率及其算术编码,输出译码后的符号,符号长度是10位。

例如:

输入:

0.2 0.3 0.1 0.15 0.25 (空格分隔)

0.0033713425

输出:

aaabdedcbe

#include <iostream>
using namespace std;
#include <stdio.h>
#include <string.h>
/*
0.2 0.3 0.1 0.15 0.25
0.0033713425
*/int main(){double a,b,c,d,e,result;cin>>a>>b>>c>>d>>e;cin>>result;double aa,bb,cc,dd,left=0,right=1;aa=a;bb=a+b;cc=a+b+c;dd=a+b+c+d;char ret[100];int cnt=0;while(1){double gap=right-left;double node1=left+gap*aa;double node2=left+gap*bb;double node3=left+gap*cc;double node4=left+gap*dd;if(cnt==10){//left==rightbreak;}if(result>=left && result<node1){ret[cnt++]='a';right=node1;}else if(result>=node1 && result<node2){ret[cnt++]='b';left=node1;right=node2;}else if(result>=node2 && result<node3){ret[cnt++]='c';left=node2;right=node3;}else if(result>=node3 && result<node4){ret[cnt++]='d';left=node3;right=node4;}else{ret[cnt++]='e';left=node4;}}for(int i=0;i<cnt;i++){cout<<ret[i];}return 0;
}

相关文章:

【多媒体技术与实践】音频信息获取和处理——编程题汇总

1&#xff1a;音频信息数据量计算 已知采样频率&#xff08;单位KHz&#xff09;、量化位数、声道数及持续时间&#xff08;单位分钟&#xff09;&#xff0c;求未压缩时的数据量&#xff08;单位MB&#xff09;. 例如&#xff1a; 输入&#xff1a; 22.05 16 2 3 &#xff…...

堆优化迪氏最短单源路径原理及C++实现

时间复杂度 O(ElogE)&#xff0c;E是边数。适用与稀疏图。 使用前提 边的权为正。可以非连通&#xff0c;非连通的距离为-1。 原理 优选队列&#xff08;小根堆&#xff09;记录两个数据&#xff1a;当前点到源点距离&#xff0c;当前点。先处理距离小的点&#xff1b;如果…...

Leetcode202. 快乐数

力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为&#xff1a; 对于一个正整数&#xff0c;每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1&#xff0…...

【MySQL】MySql常见面试题总结

目录 一、什么是sql注入 二、sql语句的执行流程 三、内连接和外连接的区别 四、Union和Union All 有什么区别 五、MySql如何取差集 六、DELETE和TRUNCATE有什么区别 七、count&#xff08;*&#xff09;和count&#xff08;1&#xff09;的区别 八、MyISAM和InnoDB的区…...

【Java 进阶篇】JDBC PreparedStatement 详解

在Java中&#xff0c;与关系型数据库进行交互是非常常见的任务之一。JDBC&#xff08;Java Database Connectivity&#xff09;是Java平台的一个标准API&#xff0c;用于连接和操作各种关系型数据库。其中&#xff0c;PreparedStatement 是 JDBC 中一个重要的接口&#xff0c;用…...

嵌入式Linux应用开发-驱动大全-第一章同步与互斥①

嵌入式Linux应用开发-驱动大全-第一章同步与互斥① 第一章 同步与互斥①1.1 内联汇编1.1.1 C语言实现加法1.1.2 使用汇编函数实现加法1.1.3 内联汇编语法1.1.4 编写内联汇编实现加法1.1.5 earlyclobber的例子 1.2 同步与互斥的失败例子1.2.1 失败例子11.2.2 失败例子21.2.3 失败…...

【计算机网络】 基于UDP的简单通讯(客户端)

文章目录 客户端流程代码实现添加头文件以及库依赖加载库创建套接字发送接收数据关闭套接字、卸载库 测试 客户端 流程 客户端跟服务端差不多&#xff0c;也要先加载库&#xff0c;在加载库之后也要创建套接字&#xff0c;但是客户端一定是没有绑定ip地址的&#xff0c;之后是…...

【云备份项目】:环境搭建(g++、json库、bundle库、httplib库)

文章目录 1. g 升级到 7.3 版本2. 安装 jsoncpp 库3. 下载 bundle 数据压缩库4. 下载 httplib 库从 Win 传输文件到 Linux解压缩 1. g 升级到 7.3 版本 &#x1f517;链接跳转 2. 安装 jsoncpp 库 &#x1f517;链接跳转 3. 下载 bundle 数据压缩库 安装 git 工具 sudo yum…...

电脑右键新建记事本不见了--设置恢复篇(无需操作注册表)

电脑右键新建记事本不见了–设置恢复篇&#xff08;无需修改注册表&#xff09; 电脑不知怎么想右键新建记事本结果竟然不见了&#xff0c;搜寻网上的都是什么修改注册表&#xff0c;粘贴代码修复&#xff08;感觉太复杂了&#xff09;&#xff0c;这里介绍通过设置内重新对记…...

JavaScript内置对象 - Array数组(四)- 序列生成器

序列生成器是生成一个指定起始值和结束值的序列&#xff0c;并且根据指定间隔长度&#xff0c;生成序列数组。 完成此功能需要使用到Array内置对象的from()对象&#xff0c;以及类数组相关知识&#xff0c;前面几篇有相关案例进行演示。 地址一&#xff1a;JavaScript内置对象…...

GD32F103x IIC通信

1. IIC通信 1.IIC的介绍 IIC总线有两条串行线&#xff0c;其一是时钟线SCK&#xff08;同步&#xff09;&#xff0c;其二是数据线SDA。只有一条数据线属于半双工。应用中&#xff0c;单片机常常作为主机&#xff0c;外围器件可以挂载多个。&#xff08;当然主机也可以有多个。…...

什么是FOSS

FOSS 是指 自由和开放源码软件(Free and Open Source Software)。这并不意味着软件是免费的。它意味着软件的源代码是开放的&#xff0c;任何人都可以自由使用、研究和修改代码。这个原则允许人们像一个社区一样为软件的开发和改进做出贡献。...

C++语言GDAL批量裁剪多波段栅格图像:基于像元个数裁剪

本文介绍基于C 语言的GDAL模块&#xff0c;按照给定的像元行数与列数&#xff0c;批量裁剪大量多波段栅格遥感影像文件&#xff0c;并将所得到的裁剪后新的多波段遥感影像文件保存在指定路径中的方法。 在之前的文章中&#xff0c;我们多次介绍了在不同平台&#xff0c;或基于不…...

简单丝的tab切换栏(html/CSS)

#html <!DOCTYPE html> <html lang"en" > <head><meta charset"UTF-8"><title>CSS实现左右滑动选项卡效果</title><link rel"stylesheet" href"https://cdnjs.cloudflare.com/ajax/libs/meyer-res…...

LabVIEW开发带式谱感测技术

LabVIEW开发带式谱感测技术 如今&#xff0c;通过无线网络传输的数据量正在迅速增加&#xff0c;并导致频谱稀缺。超过数十亿的无线设备将被连接起来&#xff0c;并需要互联网接入。因此&#xff0c;无线电频谱管理方案的效率不足以授予对所有设备的访问权限。在频谱分配中&am…...

认识柔性数组

在C99中&#xff0c;结构中的最后一个元素允许是未知大小的数组&#xff0c;这就叫做柔性数组成员 限制条件是&#xff1a; 结构体中最后一个成员未知大小的数组 1.柔性数组的形式 那么我们怎样写一个柔性数组呢 typedef struct st_type {int i;int a[0];//柔性数组成员 }ty…...

熔断、限流、降级 —— SpringCloud Alibaba Sentinel

Sentinel 简介 Sentinel 是阿里中间件团队开源的&#xff0c;面向分布式服务架构的高可用流量防护组件&#xff0c;主要以流量为切入点&#xff0c;从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性 Sentinel 提供了两个服务组件…...

python经典百题之反向输出数字

题目:输入一个整数&#xff0c;并将其反转后输出。 程序分析 我们需要对输入的整数进行反转&#xff0c;即将整数的数字反向排列。 方法1&#xff1a;使用字符串反转 解题思路 将整数转换为字符串&#xff0c;然后对字符串进行反转。 代码实现 def reverse_integer_usin…...

复习Day08:哈希表part01:242.有效的字母异位词、349. 两个数组的交集、1. 两数之和、160. 相交链表

之前的blog&#xff1a;https://blog.csdn.net/weixin_43303286/article/details/131765317 我用的方法是在leetcode再过一遍例题&#xff0c;明显会的就复制粘贴&#xff0c;之前没写出来就重写&#xff0c;然后从拓展题目中找题目来写。辅以Labuladong的文章看。然后刷题不用…...

用 Pytest+Allure 生成漂亮的 HTML 图形化测试报告

本篇文章将介绍如何使用开源的测试报告生成框架 Allure 生成规范、格式统一、美观的测试报告。 通过这篇文章的介绍&#xff0c;你将能够&#xff1a; 将 Allure 与 Pytest 测试框架相结合&#xff1b; 如何定制化测试报告内容 执行测试之后&#xff0c;生成 Allure 格式的测…...

Python字符串索引解码乱码谜题

输入数行“数字字母”字符组成的乱码字符串&#xff0c;根据谜题规则解码出乱码字符串中隐藏的单词信息。 (本笔记适合熟悉python字符串索引操作的 coder 翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大咖免费“圣经”…...

协议栈——收发数据(拼接网络包,自动重发,滑动窗口机制)

目录 协议栈何时发送数据&#xff5e; 数据长度 IP模块的分片功能 发送频率 网络包序号&#xff5e;利用syn拼接网络包ack确认网络包完整 确定偏移量 服务器ack确定收到数据总长度 序号作用 双端告知各自序号 协议栈自动重发机制 大致流程 ack等待时间如何调整 是…...

传输层协议——TCP、UDP

目录 1、UDP 协议&#xff08;用户数据报协议&#xff09; 协议特点 报文首部格式 2、TCP 协议&#xff08;传输控制协议&#xff09; 协议特点 报文首部格式 TCP连接建立时的三次握手 TCP拆除连接的四次挥手 TCP的流量控制 TCP的拥塞控制 3、传输层端口号 三类端口…...

优化您的Spring应用程序:缓存注解的精要指南

优化您的Spring应用程序&#xff1a;缓存注解的精要指南 前言详细说明1. Cacheable&#xff1a;2. CacheEvict&#xff1a;3. CachePut&#xff1a;4. Caching&#xff1a;5. CacheConfig&#xff1a; 项目中的实现前提使用 前言 当我们构建和运行Spring应用程序时&#xff0c…...

Java之原子性问题的解决

2. 原子性 2.1 volatile-问题 代码分析 : package com.itheima.myvolatile; ​ public class Demo {public static void main(String[] args) {MyThread1 t1 new MyThread1();t1.setName("小路同学");t1.start(); ​MyThread2 t2 new MyThread2();t2.setName(&q…...

实时目标检测:基于YOLOv3和OpenCV的摄像头应用

一、前言 随着人工智能和计算机视觉技术的不断发展,目标检测成为了智能监控、自动驾驶、机器人等领域的关键技术之一。实时目标检测更是对系统的反应速度和准确度提出了更高的要求。本文介绍使用OpenCV和YOLOv3实现实时目标检测的方法,演示如何使用OpenCV调用YOLOv3模型进行…...

【软考】4.2 关系代数

《 关系代数 》 表和表之间的逻辑运算 笛卡尔积&#xff1a;S1 x S2 投影&#xff1a;π&#xff1b;选择某一列&#xff08;属性&#xff09;&#xff1b;一个关系R的投影操作结果也是一个关系&#xff0c;记作Πa&#xff0c;它由从关系R中选出的A列元素构成&#xff1b;选择…...

STM32F4学习笔记读取芯片UID和MAC地址

一、简介 在嵌入式设备开发过程中有时会需要为设备设置唯一的ID用以标识设备唯一&#xff0c;比如要求同一总线上的所有设备ID不能重复&#xff0c;要求设备具体唯一的MAC地址等等。每个STM32微控制器都自带一个96位的唯一ID&#xff0c;这个ID在任何情况下都是唯一且不允许修…...

webpack优化策略

这三点是webpack优化策略的一部分&#xff0c;具体解释如下&#xff1a; 优化正则匹配&#xff08;Test&#xff09;&#xff1a;在webpack的配置中&#xff0c;test属性是一个正则表达式&#xff0c;用于匹配需要应用该loader的文件的扩展名。在您提供的代码中&#xff0c;te…...

讲讲项目里的仪表盘编辑器(三)布局组件

布局容器处理 看完前面两章的讲解&#xff0c;我们对仪表盘系统有了一个大概的理解。接着我们讲讲更深入的应用。 上文讲解的编辑器只是局限于平铺的组件集。而在编辑器中&#xff0c;还会有一种组件是布局容器。它允许其他组件拖拽进入在里面形成自己的一套布局。典型的有分页…...

wordpress 仿虎嗅/凡科建站客服电话

什么是授权? 即该用户是否有权限访问某个资源.(即校验权限)Shiro权限的实现方式 1. 硬编码方式:实现授权访问校验. 在自定义中的realm中的授权方法中进行编写代码.根据传进来的PrincipalCollection获取用户对象.该授权方法的返回值是AuthorizationInfo,该对象是一个接口,因此我…...

无障碍网站建设方案/策划公司一般怎么收费

为什么80%的码农都做不了架构师&#xff1f;>>> 接着上篇来写《和lock一起学beego 博客系统开发为例(一)》 这篇主要完成以下事项&#xff1a; &#xff11;&#xff0e;beego框架&#xff0c;项目的建立 2. 表数据的设计 3. 模型的建立 &#xff08;这篇在公司里…...

网站建设工具的实验心得/电商关键词seo排名

随时随地阅读更多技术实战干货&#xff0c;获取项目源码、学习资料&#xff0c;请关注源代码社区公众号(ydmsq666) 在对数组进复制时&#xff0c;我们可以编写一个for循环实现&#xff0c;但是比较麻烦&#xff0c;我们可以使用System类的静态方法arraycopy()。 arraycopy()方…...

学做海报的网站/百度网盘资源搜索引擎搜索

HTML里&#xff0c;比较基础的Tag主要用于标题&#xff0c;段落和分行。学习HTML最好的方法&#xff0c;就是跟着示例学。为了各位学习的方便&#xff0c;我们准备了一个简单的HTML编辑器&#xff0c;你可以在左边写HTML代码&#xff0c;然后点击上面的按钮&#xff0c;查看HTM…...

金藏源电商网站建设多少钱/腾讯企点下载

要想在你的view或者viewController中实现长按弹出菜单栏你必须要调用becomeFirstResponder方法&#xff0c;其次要实现canBecomeFirstResponder方法&#xff0c;并返回YES. #import "ViewController.h"interface ViewController ()property(nonatomic,strong)UILabel…...

做网站的服务器哪个系统好/泾县网站seo优化排名

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼//将整个棋盘算出并储存到缓冲器&#xff0c;然后调用Display函数显示出来{int i,j;//循环变量wl0;wp0;for(j0;j<MAXIMUS;j)//写入出交点左上角的字符&#xff0c;因为需要打印棋盘右下角&#xff0c;所以很以横纵各多一次循环{…...