- 机器学习4——参数估计之贝叶斯估计
平和男人杨争争
山东大学机器学习期末复习机器学习人工智能
贝叶斯估计问题建模:后验概率公式:P(ωi∣x,D)=P(x∣ωi,Di)P(ωi)∑j=1cP(x∣ωj,Dj)P(ωj)P\left(\omega_i\mid\mathbf{x},\mathcal{D}\right)=\frac{P\left(\mathbf{x}\mid\omega_i,\mathcal{D}_i\right)P\left(\omega_i\right)}{\sum_{j=1
- 【python】判断值是否为NaN
MoFe1
python开发语言
importmathdefis_nan(value):returnisinstance(value,float)andmath.isnan(value)#测试print(is_nan(float('nan')))#输出:Trueprint(is_nan(None))#输出:Falseprint(is_nan('abc'))#输出:False
- 机器学习3——参数估计之极大似然估计
平和男人杨争争
山东大学机器学习期末复习机器学习人工智能算法
参数估计问题背景:P(ωi∣x)=p(x∣ωi)P(ωi)p(x)p(x)=∑j=1cp(x∣ωj)P(ωj)\begin{aligned}&P\left(\omega_i\mid\mathbf{x}\right)=\frac{p\left(\mathbf{x}\mid\omega_i\right)P\left(\omega_i\right)}{p(\mathbf{x})}\\&p(\mathbf
- Python创意爱心代码合集(7种实现方案)
我非常不满意
pythonpygame开发语言
方案一:动态粒子爱心(Pygame实现)importpygameimportmathimportrandompygame.init()W,H=1200,800screen=pygame.display.set_mode((W,H))particles=[]classParticle:def__init__(self):self.angle=random.uniform(0,2*math.pi)se
- 认识Jacobian
一碗姜汤
统计学习线性代数矩阵
Jacobian(雅可比矩阵)是数学中用于描述多元函数在某一点处导数的重要概念,广泛应用于微积分、微分几何、数值分析等领域。以下从定义、数学表达、几何意义、应用场景等方面详细解析:一、定义与数学表达1.基本定义若有一个从欧式空间Rn\mathbb{R}^nRn到Rm\mathbb{R}^mRm的多元函数:f:Rn→Rmf:\mathbb{R}^n\to\mathbb{R}^mf:Rn→Rm,其分量
- PYTHON从入门到实践4-数据类型
定制开发才有价值
python前端服务器
"""【1】字符串【2】f""字符串的使用【3】数,math函数的使用【4】注释#【5】PYTHON的数据类型"""importmathwho="张三"where="合肥"time="2025年6月26日"message=f"{who}在{time}时间点去了{where}游玩!"print(message)#python代替计算器res=math.log2(8)print(res)print(5
- 3秒搞定DeepSeek数学公式转Word!学生党救星(附代码实测)
Uyker
python编辑器
适用场景:论文交稿deadline/报告美化/作业急救工具白嫖指南:免费+免安装方案优先一、终极方案:Mathpix截图转公式(强推!)效果:复杂矩阵→完美还原步骤:复制DeepSeek输出的LaTeX代码(例)\vec{F}=q(\vec{E}+\vec{v}\times\vec{B})打开Mathpix官网→按Ctrl+Alt+M截取公式右键粘贴到Word→自动变身标准公式!✅优势:识别准确率
- Word 中将 LaTex 代码渲染为公式的两种方法
斐夷所非
mathematicsLaTex代码转换
示例代码\mathscr{F}\left[f_1(t)\cdotf_2(t)\right]=\frac1{2\pi}F_1(\omega)*F_2(\omega)1、Word自带的公式转换功能Alt+=新建公式框,将LaTex代码粘贴到公式框中,【专用】如果把长公式的LaTex代码粘贴到公式框中出现异常,可以先粘贴LaTex代码,再选中要转换的代码后按Alt+=生成公式框Word中公式位置快捷键A
- Linux 中软件使用及常见问题 Q&A
firendsunbird
Linuxjava操作系统php
软件安装与维护Mathematica的安装与卸载:安装时可以使用Windows下的注册机生成序列号;卸载时直接删除安装文件夹,同时删除/usr/local/bin/中的链接。卸载永中Office:#rmeio编译安装Thunderbird:./configure--enable-application=mail--enable-staticmakemakeinstall64位系统强制安装32位的q
- 【CMake基础入门教程】第五课:拆分模块与使用 add_subdirectory() 构建子目录项目
奇异果冻
CMake入门学习c++算法开发语言
好的,我们进入第五课:拆分模块与使用add_subdirectory()构建子目录项目。目标你将学会如何:拆分项目结构,把不同模块放入子文件夹;在主项目中使用add_subdirectory()引入子模块;使用target_link_libraries()连接模块;初步理解项目的“库化”和模块化管理。场景说明:把math模块拆分成独立模块目录结构如下:modular_project/├──CMak
- (线性代数最小二乘问题)Normal Equation(正规方程)
音程
数学线性代数机器学习人工智能
NormalEquation(正规方程)是线性代数中的一个重要概念,主要用于解决最小二乘问题(LeastSquaresProblem)。它通过直接求解一个线性方程组,找到线性回归模型的最优参数(如权重或系数)。以下是详细介绍:1.定义与数学表达式给定一个超定方程组(方程数量多于未知数):Ax=bA\mathbf{x}=\mathbf{b}Ax=b其中:A∈Rm×nA\in\mathbb{R}^{m
- 面试宝典:深入理解这110道python面试题,AI和大数据向你招手
喜欢打酱油的老鸟
Python
https://www.toutiao.com/a6672867099800502795/1、一行代码实现1--100之和利用sum()函数求和2、如何在一个函数内部修改全局变量函数内部global声明修改全局变量3、列出5个python标准库os:提供了不少与操作系统相关联的函数sys:通常用于命令行参数re:正则匹配math:数学运算datetime:处理日期时间4、字典如何删除键和合并两个字
- LDPC纠错码:通过低密度奇偶校验码将逻辑量子比特的物理量子比特需求降低90%,仅需12个物理量子比特支撑1个逻辑量子比特,显著降低错误率
百态老人
量子计算
基于我搜索到的资料,LDPC(低密度奇偶校验)纠错码在量子计算中通过其独特的稀疏矩阵结构和高效解码算法,显著降低了逻辑量子比特所需的物理量子比特数量,同时提升错误容忍能力。以下从原理、应用机制、实验依据及影响机制四个维度展开分析:一、LDPC纠错码的核心原理与优势LDPC码是一种线性分组纠错码,其核心特征在于奇偶校验矩阵的稀疏性:稀疏矩阵结构校验矩阵$\mathbf{H}$中非零元素(即“1”)的
- MATLAB安装过程中源文件服务器不可达的核心问题与解决方案
百态老人
matlab服务器php
一、核心问题分析在MATLAB网络安装过程中,源文件服务器不可达可能由以下因素导致:网络连接问题网络不稳定或完全中断,导致安装程序无法访问MathWorks服务器。本地网络配置(如DNS解析错误、代理设置不当)影响连接。防火墙/安全软件拦截操作系统防火墙或第三方防病毒软件(如Symantec、McAfee)可能阻止MATLAB访问必要端口。某些安全软件将安装程序误判为威胁,直接中断连接。VPN或代
- Python中from...import和直接使用import的区别
甯公子_
Python入门程序算法
在Python中,from...import...和直接使用import有以下几个主要区别:1.导入方式importmodule:这种方式会导入整个模块。使用时需要通过模块名访问其中的内容。例如:importmathprint(math.sqrt(16))#输出:4.0frommoduleimportsomething:这种方式只导入模块中的特定部分(如函数、类、变量等)。使用时可以直接使用导入的
- openmv入门(三)
做好自己吧!
openmv人工智能python嵌入式硬件opencv
一ApilTagimportsensor,time,image,math#设置摄像头sensor.reset()sensor.set_pixformat(sensor.RGB565)sensor.set_framesize(sensor.QQVGA)#分辨率,像素点sensor.set_auto_gain(False)sensor.set_auto_whitebal(False)sensor.se
- DAY 28 类的定义和方法
小白菜333666
python算法开发语言
题目1:定义圆(Circle)类要求:1.包含属性:半径radius。2.包含方法:●calculate_area():计算圆的面积(公式:πr²)。●calculate_circumference():计算圆的周长(公式:2πr)。3.初始化时需传入半径,默认值为1。importmathclassCircle:def__init__(self,radius=1):self.radius=radi
- vue2 图片裁剪上传
Mr.app
vue.js
原图(img盒子)的尺寸设置:.box-size{//预览原图的尺寸width:200px;height:200px;}裁剪框的初始尺寸//使用图片较短边的40%作为裁剪框的初始尺寸,但不超过180pxconstshortSide=Math.min(imageWidth,imageHeight);constinitialSize=Math.min(180,Math.max(shortSide*0.
- vue 3 计算器
ldj2020
vue.jsjavascript前端
效果:{{formattedDisplay}}C()⌫÷789×456−123+%0.=import{ref,computed}from"vue";import{evaluate}from"mathjs";//表达式和显示内容constexpression=ref("");constdisplay=ref("0");//格式化显示内容:将*→×,/→÷constformattedDisplay=c
- 小程序第四章作业
胡小图图图图图
小程序
操作题1.使用canvas组件实现“五个圆圈”的绘制。代码:.js代码:Page({onReady:function(e){constctx=wx.createCanvasContext('quanquan')//绘制蓝色圆环ctx.beginPath()ctx.arc(80,52,50,0,2*Math.PI)ctx.setStrokeStyle('#0072BB')ctx.setLineWid
- C# 之委托与事件详解
X-Vision
《C#学习笔记》c#开发语言
C#委托与事件详解剖析委托和事件是C#中实现松耦合和响应式编程的核心机制,本文将全面深入这两个重要概念。一、委托(Delegate)深入解析1.委托的本质委托实质上是一个类型安全的函数指针,它定义了方法的签名://声明委托类型publicdelegateintMathOperation(inta,intb);classProgram{staticintAdd(intx,inty)=>x+y;sta
- 深度学习——第2章习题2-1分析为什么平方损失函数不适用于分类问题
笨小古
深度强化学习深度学习分类人工智能
深度学习——第2章习题2-1《神经网络与深度学习》——邱锡鹏2-1分析为什么平方损失函数不适用于分类问题。平方损失函数(QuadraticLossFunction)经常用在预测标签y为实数值的任务中,定义为L(y,f(x;θ))=12(y−f(x;θ))2\mathcal{L}\left(y,f(x;\theta)\right)=\frac{1}{2}\left(y-f(x;\theta)\rig
- 大模型强化微调GRPO——DeepSeekMath: Pushing the Limits of MathematicalReasoning in Open Language Models
樱花的浪漫
对抗生成网络与动作识别强化学习大模型与智能体因果推断语言模型人工智能自然语言处理深度学习机器学习
1.概述大型语言模型(LLM)革新了人工智能领域的数学推理方法,在定量推理基准测试(Hendrycks等,2021年)和几何推理基准测试(Trinh等,2024年)方面取得了重大进展。此外,这些模型在帮助人类解决复杂的数学问题方面也发挥了重要作用(Yao,2023年)。然而,像GPT-4(OpenAI,2023年)和Gemini-Ultra(Anil等,2023年)这样的尖端模型并未公开,目前可获
- 动态规划40(Leetcode2140解决智力问题)
从月亮走向月亮7
动态规划算法
代码:classSolution{publiclongmostPoints(int[][]questions){intn=questions.length;long[]dp=newlong[n+1];for(inti=n-1;i>=0;i--){intj=Math.min(n,i+questions[i][1]+1);dp[i]=Math.max(dp[i+1],questions[i][0]+d
- Python漂浮爱心代码
SuRuiYuan1
python开发语言
下面是一个使用Python和`turtle`库创建的简单漂浮爱心动画示例。这个程序会在屏幕上绘制一个爱心,并让它看起来像是在漂浮或上升。首先,确保你已经安装了`turtle`库。通常情况下,它作为Python标准库的一部分,所以大多数情况下不需要额外安装。以下是完整的代码示例:```pythonimportturtleimportmathimporttime#设置画布screen=turtle.S
- python案例练习
网小鱼的学习笔记
Pythonpythonandroid开发语言
练习1:正五边形面积计算importmaths=eval(input('请输入正五角行边长'))#分子=5*边长^2molecules=5*s**2#分母=4*tan(pi/2)denominator=4*math.tan(math.pi/5)area=molecules/denominatorprint(f'{area=}')执行结果在这里插入代码片练习2:解联力方程式,鸡兔同笼问题题目:今有鸡
- Java素数筛法:BitSieve类的精妙设计
这是一个设计非常精巧的内部工具类,虽然代码量不大,但包含了经典的算法思想和多重优化。BitSieve是一个用于在指定范围内高效查找大素数候选者的工具类。它的核心是实现了埃拉托斯特尼筛法(SieveofEratosthenes)的一种优化变体。它的访问权限是包级私有(finalclassBitSieve),这意味着它是一个内部辅助类,专门服务于java.math包中的其他类,特别是java.math
- python制作简单计算器
Xiang__jin
pythonpython
做一个计算器,这是我们想要的效果。1、准备工作导入time、tqdm、math库fromtqdmimport*fromtimeimport*frommathimport*2、开始添加一个重复循环并添加变量swhileTrue:#清屏print('\033c')whileTrue:#如果用法输入的是str类型将打印输入错误,再次循环try:s=int(input('''选择一种计算方式或是退出1、加
- 华为OD机试_2025 B卷_最少面试官数(Python,100分)(附详细解题思路)
蜗牛的旷野
华为OD机试Python版华为odpython开发语言
题目描述某公司组织一场公开招聘活动,假设由于人数和场地的限制,每人每次面试的时长不等,并已经安排给定,用(S1,E1)、(S2,E2)、(Sj,Ej)…(Simax_overlap:max_overlap=current#计算满足场次限制的最小需求min_by_count=math.ceil(n/m)#取两个约束的最大值result=max(min_by_count,max_overlap)pri
- 「C/C++」C/C++STL篇 之 forward_list单向链表容器
何曾参静谧
c语言c++list
✨博客主页何曾参静谧的博客(✅关注、点赞、⭐收藏、转发)全部专栏(专栏会有变化,以最新发布为准)「Win」Windows程序设计「IDE」集成开发环境「定制」定制开发集合「C/C++」C/C++程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「UG/NX」BlockUI集合「Py」Python程序设计「Math」探秘数学世界「PK」Paras
- ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术jvmAOP动态代理ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
- java编程思想 --内部类
百合不是茶
java内部类匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
- web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
- 泛型类的自定义
麦田的设计者
javaandroid泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
- CSS清除浮动的4中方法
IT独行者
JavaScriptUIcss
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
- Cygwin使用windows的jdk 配置方法
_wy_
jdkwindowscygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
- linux下安装maven
无量
mavenlinux安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
- tomcat的https 配置,syslog-ng配置
aichenglong
tomcathttp跳转到httpssyslong-ng配置syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
- 关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
- java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
- JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
- Test注解的两个属性:expected和timeout
bijian1013
javaJUnitexpectedtimeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
- [Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
- 【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
- WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
- java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
- Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
javanetty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
- spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
- Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
- 解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
- [转]for 循环为何可恨?
dcj3sjt126com
程序员读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
- Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
- Oracle 复习笔记之序列
eksliang
Oracle 序列sequenceOracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
- 有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
- 使用KeleyiSQLHelper类进行分页查询
hvt
sql.netC#asp.nethovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
- SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
- 链表栈
luyulong
java数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
- 基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
- spring配置定时任务
stunizhengjia
springtimer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
- ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http