- Android-Jetpack架构组件(二)带你了解Lifecycle,给2021的移动开发一些建议
flutter架构师
程序员面试移动开发android
@OverrideprotectedvoidonResume(){super.onResume();myPresenter.onResume();}@OverrideprotectedvoidonPause(){super.onPause();myPresenter.onPause();}}classMyPresenter{《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战
- Android学习笔记
孙小小白
androidandroidandroidstudioide
Android是一种廉价而又灵活的智能手机操作系统,它的普及使得人们可以拥有一款更加便捷的智能手机。Android系统的普及,提升了智能手机的使用价值,让人们的生活更加便捷。那么,如何学习Android呢?下面是一篇关于学习Android的文章,希望对初学者有所帮助。一、了解Android的基础知识在学习Android之前,我们需要了解Android系统的特点,包括其组件、运行机制、UI、API等
- Android学习笔记——获取SHA1证书指纹
Yimi-依米
环境配置AndroidandroidandroidstudioSHA1证书指纹第三方
当我们需要用到高德地图等三方技术时,需要我们提供SHA1用以注册。打开Androidstudio左下角的Terminal(或者你使用cmd控制台也行),进入keytool所在的对应路径,输入keytool指令读取jks文件(jks文件生成可以参考这里),如图即可获得证书指纹。代码里路径改为自己对应的。cdD:\DownloadSoft\AndroidStudio\jre\binkeytool.ex
- Android学习笔记——签名应用并打包发布
Yimi-依米
环境配置Androidandroidandroidstudio签名打包发布jks
当想要把做的安卓app发给别人安装时,需要签名应用并打包发布。首先需要生成jks文件。打开Androidstudio,选择Build>GenerateSignedBundle/APK…>APK>Next>Createnew…建立自己的新密钥,起个名字,设好密码,然后点OK>Next。按住ctrl点击debug和release,即两种版本的密钥都使用,然后点Finish。选择Build>BuildB
- Android学习笔记——Keystore生成
Yimi-依米
Android环境配置androidandroidstudioKeystore发布签名
Android平台打包发布apk应用,需要使用数字证书(.keystore文件)进行签名,用于表明开发者身份,可以使用Androidstudio安装包下的keytool工具自己生成。可以打开Androidstudio底部的Terminal,使用keytool命令生成证书。keytool-genkey-aliastestalias-keyalgRSA-keysize2048-validity3650
- (Note) Android-SparseArray
CokeNello
ThanksEmptyArray.javaArrayUtils.java面试必备:SparseArray源码解析SparseArray.javaGrowingArrayUtils.javaAndroid学习笔记之性能优化SparseArray类简介源码的类简介:/***SparseArraysmapintegerstoObjects.UnlikeanormalarrayofObjects,*the
- 记签名机制
再吃1颗苹果
android
签名过程:首先将数据源通过摘要算法获取到数字摘要对数字摘要用私钥进行加密得到签名将原始消息以及签名发送给消息接收方接收方用公钥解密得到数字摘要用同样的摘要算法将原始消息进行计算比较得到的数字摘要与解密后的是否一致Android学习笔记——Android签名机制详解Android签名过程:apk文件中的META—INFO文件夹中有三个文件分别是MENIFEST.SFCERT.RSACERT.SFME
- Android学习笔记:滚动控件ListView的基本使用方法
__椎名真白
AndroidAndroidListView自定义ListViewListView效率优化
ListView是APP中的常用组件之一,它的使用方式与其他组件相比之下更复杂,但是功能更加强大。通常被用作菜单、列表等。一、ListView基本用法ListView的基本使用步骤:1、定义ListVIew布局2、创建ArrayAdapter对象3、将ArrayAdapter对象和ListView绑定新建项目ListViewTest,一切默认,编辑activity_main.xml文件,如下所示:
- 【android】Android学习笔记之蓝牙连接相关
Yengi
testandroid学习笔记
转:https://github.com/Mage-M/StudyAndroid/blob/master/%E6%9D%82%E7%AF%87/Android%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%E4%B9%8B%E8%93%9D%E7%89%99%E8%BF%9E%E6%8E%A5%E7%9B%B8%E5%85%B3.md###1.android蓝牙开发需要依
- Android学习笔记——基本布局
沈喵咪
主要用于个人复习(基于第一行代码)线性布局(LinearLayout):这个布局会将它所包含的控件在线性方向上依次排序在线性布局中,排序方式由android:orientation来控制,对齐方式由android:gravity来控制在xml布局文件中定义线性布局管理器时,需要使用标记常用属性:1、android:orientation可选值horizontal(水平方向排列),vertical(
- Android学习笔记(四):Flutter路由
w_tt
androidflutterandroid
未改造代码import'package:flutter/material.dart';import'navigator_demo.dart';voidmain(){runApp(MyApp());}classMyAppextendsStatelessWidget{@overrideWidgetbuild(BuildContextcontext){returnMaterialApp(debugSho
- Android学习笔记--RecycleView用法
Swy_ww
AndroidandroidRecycleView
1.什么是RecyclerViewRecyclerView是Android5.0materialsdesign中的组件之一。通过名字我们就能看出一点端倪,没错,它主要的特点就是复用。我们知道,Listview中的Adapter中可以实现ViewHolder的复用。RecyclerView提供了一个耦合度更低的方式来复用ViewHolder,并且可以轻松的实现ListView、GridView以及瀑
- Android学习笔记——持久化存储
悄敲敲
Android学习笔记android学习androidstudio
Android系统中主要提供三种方式用于简单地实现数据持久化功能——文件存储、SharedPreference存储、数据库存储。文件存储——最基本的一种存储方式作为最基本的存储方式,不对存储的内容进行任何的格式化处理,所有数据都是原封不动地保存到文件当中。适用:简单的文本数据或二进制数据默认文件存放目录:所有文件默认存储到/data/data//files/将数据存储到文件中openFileOut
- Android学习笔记——广播机制
悄敲敲
Android学习笔记android学习androidstudio
Android广播机制为了便于进行系统级别的消息通知,Android引入了一套广播消息机制。Android中的广播机制十分灵活,每个程序都可以对自己感兴趣的广播进行注册。程序只会接收自己所关心的广播内容,这些广播内容可能来自系统,也可能来自其他应用程序。发送广播:Intent;接收广播:广播接收器(BroadcastReceiver)。广播类型分为两种:标准广播和有序广播标准广播Normalbro
- Android学习笔记——活动
悄敲敲
Android学习笔记android学习
活动的生命周期理解活动的生命周期可以帮助写出更加连贯流畅的程序,并更好管理资源。最终获得更好的用户体验。返回栈Android使用任务(Task)来管理活动的,一个任务就是一组存放在返回栈(BackStack)里的活动的集合。每个应用程序都有自己的返回栈,大多数情况下,一个应用程序就是一个任务。(参考活动的启动模式一节。)活动状态运行状态:活动处于返回栈栈顶。暂停状态:不再处于栈顶,但仍然可见。仍然
- Android 学习笔记
Donkey..
Android学习笔记Android进阶android
Android学习笔记最全Android常用开源库总结!AndroidDebugAdb常用命令收录Androidstudio最全最好用的插件Androidshape属性大全UMLAndroid改主题字体和字体大小AndroidLiveTemplate(实时模板)的使用AndroidstudioDebug设计模式GradleAppTheme属性设置集合Android中style和theme的区别An
- Activity之间的通信方式
SONGSONG3000
在这篇笔记中《Android学习笔记之Activity》,有提到Activity之间的通信方式有5种,但没有展开内容详细去讲述,所以在这篇笔记详细去讲述每一种通信方式的实现方法。在Intent跳转时携带数据借助类的静态变量借助全局变量Application借助Service服务借助外部存储来实现通讯借助SharedPreference使用Android数据库SQLite使用File本地文件一、在I
- Android学习笔记整理(12)--XML解析及天气预报案例
dazzlingn
AndriodXMLXML解析Android学习笔记天气预报案例Android天气预报
1.XML解析若想要操作XML文档,首先需要将XML文档解析出来。通常情况下,解析XML文件有三种方式DOM解析DOM(DocumentObjectMode)解析是一种基于对象的API,它会将XML文件的所有内容以文档树方式存放在内存中,然后允许使用DOMAPI遍历XML树、检索所需的数据,这样便能根据树的结构以节点的形式来DOM操作XML代码看起来是比较直观,编码比SAX解析简单,但DOM需要将
- Android学习笔记——问题汇总
阿扣扣Zzz
androidandroid
在androidStudio中加入图片时,图片名称必须以字母开头,加入时报错Error:java.util.concurrent.ExecutionException:com.android.ide.common.process.ProcessException:解决办法:在module的build.gradle中添加以下代码android{//...aaptOptions.cruncherEna
- Android学习笔记(3)——UI开发的点点滴滴
圆圆的肚子
android
第三章UI开发的点点滴滴3.1常用控件的使用方法3.1.1TextView3.1.2Button3.1.3EditText3.1.4ImageView3.1.5ProgressBar3.1.6AlertDialog3.1.7ProgressDialog3.2详解四种布局3.2.1线性布局3.2.2相对布局3.2.3帧布局3.2.4百分比布局(被弃用,改用约束布局)3.3创建自定义布局3.3.1引入
- Android学习笔记(十六):高级UI组件----图像类组件(图像切换器ImageSwitcher)
小丑键盘侠
Androidandroid
图像类组件(图像切换器ImageSwitcher)图像切换器:主要用于实现带动画效果的图片切换功能。当用户左右滑动时,会切换图片,并伴随某种动画效果。在activity_main.xml文件中,用ImageSwitcher标签来定义图片切换器。属性:android:layout_width和android:layout_height:取值为match_parent,即与父容器相同。通过Java代码
- Android学习笔记(七)——CheckBox
不打小怪兽
Android学习笔记android移动开发app
Android小白,初次学习,笔记自用,敬请指正~有帮助记得一键三连呀(点赞收藏关注)一,学习内容:1,基本使用2,设置监听事件2,如何自定义选择样式:先将自己想要使用的图标放到drawable文件夹下,然后通过background属性进行引用即可。此内容比较简单,具体见下面完整代码(添加注释为了方便理解,运行时将xml中的//注释去掉)二,效果演示:三,完整代码:1,activity_main.
- Android学习笔记之View的绘制流程(一)——measure过程
狗剩Ein
AndroidAndroidmeasure过程
一句话总结:View的绘制流程是从ViewRoot(ViewRootImpl)的performTraversals方法开始,经过measure,layout,draw三个过程才能最终将一个View绘制出来。其中measure用来测量View的宽高,layout用来确定View在父容器中的放置位置,draw用来将View绘制到屏幕上。再说细点,当界面强制重绘调用了View的requestLayout
- android service 构造函数,Android学习笔记五之Service
武吴为
androidservice构造函数
原标题:Android学习笔记五之Service1、什么是Service?什么是Service?Service是系统的四大组件之一,官方文档是这样描述Service的:AServiceisanapplicationcomponentthatcanperformlong-runningoperationsinthebackgroundanddoesnotprovideauserinterface.A
- Android学习笔记3---仿微信登录界面
PeterRabbit49
Android
仿微信登录界面有几个东西,分别是1、欢迎页,2秒跳转2、用户名只允许为手机号3、密码不可见4、以及忘记密码页面跳转主要用了3个控件,分别是:TextView、EditView、Button运用到前两节学习的按钮监听事件,以及内容监听事件。layout怎么布局的,Manifest文件怎么写的,做了一个整合。实现如下:界面怎么布局的可以自己在网上搜一个,然后根据经验自己改。启动的时候出现运行停止的状况
- Android学习笔记11---Log日志初探
PeterRabbit49
Android
在程序开发与调试中,log是使用记录程序执行过程的机制,它既可以用于记时间信息,也可以用于调试程序使用。/**Log.v()--------------------VERBOSELog.d()--------------------DEBUGLog.i()--------------------INFOLog.w()--------------------WARNLog.e()----------
- Android学习笔记16---星级评分条的实现
PeterRabbit49
Android
RatingBar星级评分条它跟拖动条类似。都允许用户拖动来改变进度,不同的是,星级评分条通过星星图案表示进度。想淘宝,等等都有这个东西。很简单。重要记一个组件,属性见名知意还有三个方法:1、getRating()方法:获取等级,表示你当前选中了几颗星星2、getStepSize()方法:每次最少可以改变多少星星(默认是0.5个)3、getProgress()方法:获取进度,是前两个之积。acti
- Android学习笔记之MVP
Small_Cake
image.pngP层与M层和V层进行交互,P层持有Model层实例,同时包含一个CallBack回调。Model层获取数据,然后P层因为持有Model层和View层,也就可以通过CallBack回调数据结果给View层更新UI。以实现View层和Model层的分离。View层:要实现回调接口CallBack,然后只管【UI更新】Model层:只管【获取数据】Presenter层:需要获取Mode
- Android学习笔记(持续更新)
写给杭州的歌
androidandroid
JAVA1.JavaLambda表达式入门2.Java反射机制详解3.深入理解Java:注解(Annotation)基本概念4.深入理解Java:注解(Annotation)自定义注解入门5.深入理解Java:注解(Annotation)–注解处理器6.Android中知道这几个Java反射就够了7.JavaThreadPool8.JavaStringFormat9.java继承时初始化的执行顺序
- Android平台SDK代号版本及API级别
猿耕记
Android平台SDK代号版本及API级别这是《Android学习笔记》第001篇。总结一下AndroidSDK版本代号和API级别,开发中经常会遇到SDK版本号和API级别号,每次都要到Google官网查看,非常不方便。这里汇总一下,如果有新的版本发布会及时更新,也方便国内的同学查看。代号版本API级别新功能Android101029支持可折叠设备、5G网络、通知中的智能回复、更安全的隐私保护
- HQL之投影查询
归来朝歌
HQLHibernate查询语句投影查询
在HQL查询中,常常面临这样一个场景,对于多表查询,是要将一个表的对象查出来还是要只需要每个表中的几个字段,最后放在一起显示?
针对上面的场景,如果需要将一个对象查出来:
HQL语句写“from 对象”即可
Session session = HibernateUtil.openSession();
- Spring整合redis
bylijinnan
redis
pom.xml
<dependencies>
<!-- Spring Data - Redis Library -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redi
- org.hibernate.NonUniqueResultException: query did not return a unique result: 2
0624chenhong
Hibernate
参考:http://blog.csdn.net/qingfeilee/article/details/7052736
org.hibernate.NonUniqueResultException: query did not return a unique result: 2
在项目中出现了org.hiber
- android动画效果
不懂事的小屁孩
android动画
前几天弄alertdialog和popupwindow的时候,用到了android的动画效果,今天专门研究了一下关于android的动画效果,列出来,方便以后使用。
Android 平台提供了两类动画。 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变)。
第二类就是 Frame动画,即顺序的播放事先做好的图像,与gif图片原理类似。
- js delete 删除机理以及它的内存泄露问题的解决方案
换个号韩国红果果
JavaScript
delete删除属性时只是解除了属性与对象的绑定,故当属性值为一个对象时,删除时会造成内存泄露 (其实还未删除)
举例:
var person={name:{firstname:'bob'}}
var p=person.name
delete person.name
p.firstname -->'bob'
// 依然可以访问p.firstname,存在内存泄露
- Oracle将零干预分析加入网络即服务计划
蓝儿唯美
oracle
由Oracle通信技术部门主导的演示项目并没有在本月较早前法国南斯举行的行业集团TM论坛大会中获得嘉奖。但是,Oracle通信官员解雇致力于打造一个支持零干预分配和编制功能的网络即服务(NaaS)平台,帮助企业以更灵活和更适合云的方式实现通信服务提供商(CSP)的连接产品。这个Oracle主导的项目属于TM Forum Live!活动上展示的Catalyst计划的19个项目之一。Catalyst计
- spring学习——springmvc(二)
a-john
springMVC
Spring MVC提供了非常方便的文件上传功能。
1,配置Spring支持文件上传:
DispatcherServlet本身并不知道如何处理multipart的表单数据,需要一个multipart解析器把POST请求的multipart数据中抽取出来,这样DispatcherServlet就能将其传递给我们的控制器了。为了在Spring中注册multipart解析器,需要声明一个实现了Mul
- POJ-2828-Buy Tickets
aijuans
ACM_POJ
POJ-2828-Buy Tickets
http://poj.org/problem?id=2828
线段树,逆序插入
#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>using namespace std;#define N 200010struct
- Java Ant build.xml详解
asia007
build.xml
1,什么是antant是构建工具2,什么是构建概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个3,ant的好处跨平台 --因为ant是使用java实现的,所以它跨平台使用简单--与ant的兄弟make比起来语法清晰--同样是和make相比功能强大--ant能做的事情很多,可能你用了很久,你仍然不知道它能有
- android按钮监听器的四种技术
百合不是茶
androidxml配置监听器实现接口
android开发中经常会用到各种各样的监听器,android监听器的写法与java又有不同的地方;
1,activity中使用内部类实现接口 ,创建内部类实例 使用add方法 与java类似
创建监听器的实例
myLis lis = new myLis();
使用add方法给按钮添加监听器
- 软件架构师不等同于资深程序员
bijian1013
程序员架构师架构设计
本文的作者Armel Nene是ETAPIX Global公司的首席架构师,他居住在伦敦,他参与过的开源项目包括 Apache Lucene,,Apache Nutch, Liferay 和 Pentaho等。
如今很多的公司
- TeamForge Wiki Syntax & CollabNet User Information Center
sunjing
TeamForgeHow doAttachementAnchorWiki Syntax
the CollabNet user information center http://help.collab.net/
How do I create a new Wiki page?
A CollabNet TeamForge project can have any number of Wiki pages. All Wiki pages are linked, and
- 【Redis四】Redis数据类型
bit1129
redis
概述
Redis是一个高性能的数据结构服务器,称之为数据结构服务器的原因是,它提供了丰富的数据类型以满足不同的应用场景,本文对Redis的数据类型以及对这些类型可能的操作进行总结。
Redis常用的数据类型包括string、set、list、hash以及sorted set.Redis本身是K/V系统,这里的数据类型指的是value的类型,而不是key的类型,key的类型只有一种即string
- SSH2整合-附源码
白糖_
eclipsespringtomcatHibernateGoogle
今天用eclipse终于整合出了struts2+hibernate+spring框架。
我创建的是tomcat项目,需要有tomcat插件。导入项目以后,鼠标右键选择属性,然后再找到“tomcat”项,勾选一下“Is a tomcat project”即可。具体方法见源码里的jsp图片,sql也在源码里。
补充1:项目中部分jar包不是最新版的,可能导
- [转]开源项目代码的学习方法
braveCS
学习方法
转自:
http://blog.sina.com.cn/s/blog_693458530100lk5m.html
http://www.cnblogs.com/west-link/archive/2011/06/07/2074466.html
1)阅读features。以此来搞清楚该项目有哪些特性2)思考。想想如果自己来做有这些features的项目该如何构架3)下载并安装d
- 编程之美-子数组的最大和(二维)
bylijinnan
编程之美
package beautyOfCoding;
import java.util.Arrays;
import java.util.Random;
public class MaxSubArraySum2 {
/**
* 编程之美 子数组之和的最大值(二维)
*/
private static final int ROW = 5;
private stat
- 读书笔记-3
chengxuyuancsdn
jquery笔记resultMap配置ibatis一对多配置
1、resultMap配置
2、ibatis一对多配置
3、jquery笔记
1、resultMap配置
当<select resultMap="topic_data">
<resultMap id="topic_data">必须一一对应。
(1)<resultMap class="tblTopic&q
- [物理与天文]物理学新进展
comsci
如果我们必须获得某种地球上没有的矿石,才能够进行某些能量输出装置的设计和建造,而要获得这种矿石,又必须首先进行深空探测,而要进行深空探测,又必须获得这种能量输出装置,这个矛盾的循环,会导致地球联盟在与宇宙文明建立关系的时候,陷入困境
怎么办呢?
 
- Oracle 11g新特性:Automatic Diagnostic Repository
daizj
oracleADR
Oracle Database 11g的FDI(Fault Diagnosability Infrastructure)是自动化诊断方面的又一增强。
FDI的一个关键组件是自动诊断库(Automatic Diagnostic Repository-ADR)。
在oracle 11g中,alert文件的信息是以xml的文件格式存在的,另外提供了普通文本格式的alert文件。
这两份log文
- 简单排序:选择排序
dieslrae
选择排序
public void selectSort(int[] array){
int select;
for(int i=0;i<array.length;i++){
select = i;
for(int k=i+1;k<array.leng
- C语言学习六指针的经典程序,互换两个数字
dcj3sjt126com
c
示例程序,swap_1和swap_2都是错误的,推理从1开始推到2,2没完成,推到3就完成了
# include <stdio.h>
void swap_1(int, int);
void swap_2(int *, int *);
void swap_3(int *, int *);
int main(void)
{
int a = 3;
int b =
- php 5.4中php-fpm 的重启、终止操作命令
dcj3sjt126com
PHP
php 5.4中php-fpm 的重启、终止操作命令:
查看php运行目录命令:which php/usr/bin/php
查看php-fpm进程数:ps aux | grep -c php-fpm
查看运行内存/usr/bin/php -i|grep mem
重启php-fpm/etc/init.d/php-fpm restart
在phpinfo()输出内容可以看到php
- 线程同步工具类
shuizhaosi888
同步工具类
同步工具类包括信号量(Semaphore)、栅栏(barrier)、闭锁(CountDownLatch)
闭锁(CountDownLatch)
public class RunMain {
public long timeTasks(int nThreads, final Runnable task) throws InterruptedException {
fin
- bleeding edge是什么意思
haojinghua
DI
不止一次,看到很多讲技术的文章里面出现过这个词语。今天终于弄懂了——通过朋友给的浏览软件,上了wiki。
我再一次感到,没有辞典能像WiKi一样,给出这样体贴人心、一清二楚的解释了。为了表达我对WiKi的喜爱,只好在此一一中英对照,给大家上次课。
In computer science, bleeding edge is a term that
- c中实现utf8和gbk的互转
jimmee
ciconvutf8&gbk编码
#include <iconv.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>
#include <sys/stat.h>
int code_c
- 大型分布式网站架构设计与实践
lilin530
应用服务器搜索引擎
1.大型网站软件系统的特点?
a.高并发,大流量。
b.高可用。
c.海量数据。
d.用户分布广泛,网络情况复杂。
e.安全环境恶劣。
f.需求快速变更,发布频繁。
g.渐进式发展。
2.大型网站架构演化发展历程?
a.初始阶段的网站架构。
应用程序,数据库,文件等所有的资源都在一台服务器上。
b.应用服务器和数据服务器分离。
c.使用缓存改善网站性能。
d.使用应用
- 在代码中获取Android theme中的attr属性值
OliveExcel
androidtheme
Android的Theme是由各种attr组合而成, 每个attr对应了这个属性的一个引用, 这个引用又可以是各种东西.
在某些情况下, 我们需要获取非自定义的主题下某个属性的内容 (比如拿到系统默认的配色colorAccent), 操作方式举例一则:
int defaultColor = 0xFF000000;
int[] attrsArray = { andorid.r.
- 基于Zookeeper的分布式共享锁
roadrunners
zookeeper分布式共享锁
首先,说说我们的场景,订单服务是做成集群的,当两个以上结点同时收到一个相同订单的创建指令,这时并发就产生了,系统就会重复创建订单。等等......场景。这时,分布式共享锁就闪亮登场了。
共享锁在同一个进程中是很容易实现的,但在跨进程或者在不同Server之间就不好实现了。Zookeeper就很容易实现。具体的实现原理官网和其它网站也有翻译,这里就不在赘述了。
官
- 两个容易被忽略的MySQL知识
tomcat_oracle
mysql
1、varchar(5)可以存储多少个汉字,多少个字母数字? 相信有好多人应该跟我一样,对这个已经很熟悉了,根据经验我们能很快的做出决定,比如说用varchar(200)去存储url等等,但是,即使你用了很多次也很熟悉了,也有可能对上面的问题做出错误的回答。 这个问题我查了好多资料,有的人说是可以存储5个字符,2.5个汉字(每个汉字占用两个字节的话),有的人说这个要区分版本,5.0
- zoj 3827 Information Entropy(水题)
阿尔萨斯
format
题目链接:zoj 3827 Information Entropy
题目大意:三种底,计算和。
解题思路:调用库函数就可以直接算了,不过要注意Pi = 0的时候,不过它题目里居然也讲了。。。limp→0+plogb(p)=0,因为p是logp的高阶。
#include <cstdio>
#include <cstring>
#include <cmath&