第一步:取不锈钢盆,加入面粉适量 第二步:倒入温水适量(20摄氏度左右) 第三步:取瓷碗,倒入酵母粉适量,温开水(30度左右)搅匀 第四步:酵母水倒入面粉中,调整水/面至稀泥状 5:找一锅盖盖住盆口,放到床上,盖上薄被,等待·1.5小时左右,待发酵至双倍厚度。 6:根据酸味大小,取面碱适量拌入一勺面粉中,倒入盆中,然后不断加入面粉并不断揉匀,直至软硬适中(一般可以动用面板) 7:面放回盆中(面的下面可以撒上一层面粉),继续发酵半小时左右,直至长大不少。 8:取出面做成馒头,放在盖天上醒十分钟(盖上棉布防止干皮) 9:放入蒸锅蒸半小时,如果多层笼屉,建议15分钟时上下笼屉调换一下以便受热均匀。 10:停火等5分钟,出锅。 注:环境温度21度左右。 注:适量、适中等量词需自己体会。
题目要求 快递小哥不会很细致的核实身份,允许代领,存在很多不安全因素。 设计一款基于手机的app,用于快递小哥验证身份,顾客领取快递。具体认证方法不限,简单易行。
(1)给出:app包含哪些部分(可加图示),每部分的功能 (2)模仿kerberos的写法,描述交互过程,并加说明
模仿kerberos的假设 快递小哥需要做的是证实顾客真实身份与其所声称的身份相符 顾客不会主动泄露只有自己和KDC知道的密码 存在权威第三方(KDC)会告诉用户快递票据 KDC与所有用户(客户和快递员)两两拥有一套对称密钥 名词解释 KDC(Key Distribution Center)= 密钥分发中心 TGT(Ticket Granting Ticket)= 快递票据(取件二维码) goal = 快递信息 SS(Service Server)= 特定服务提供端(快递员) A = 客户 第一阶段 用户登录AS获取票据 用户发送自己的用户名到KDC服务器。KDC服务器会生成相应的TGT票据,打上时间戳,在本地数据库中查找该用户的密钥,并用该密钥对TGT进行加密,将结果发还给客户端用户。客户端收到该信息,并使用自己的密钥进行解密之后,就能得到TGT票据了。
用户本地登录:输入IDA, 密码 本地客户端使用密码生成密钥EKA,同时发送明文给KDC: A -> KDC : IDA || IDSS AS检查ID在本地数据库中,使用A的密码生成密钥EKA加密返回A与TGS通讯的密钥K,快递信息goal,TGS与KDC密钥加密的TGT(包括K,IDA,时间戳LT): KDC -> A : EKA[K || goal || EKSS[ IDA || LY || goal]] 用户使用自己生成的EKA解密消息(用户向KDC证明了自己的身份)获得临时密钥K与加密的TGT 这里其他人不知道密码,无法还原密钥
第二阶段 用户向快递员证明自己的身份 用户发送TGT与K加密的IDA给快递员,快递员核对ID就知道A是A了 用户申请取快递,发送TGT,快递号goal,K加密的IDA和时间戳TLnew: A -> SS : EKSS[ IDA || LY || goal] || goal || K[LTnew || IDA] 快递员解密TGT,得到K和IDA,用K解密后半消息,得到IDA与LTnew,核对之后就知道时间没过期,用户是用户自己 交付快递
File 问 如何查看当前工程的路径?
答 Configuration Overview 可以查看当前工程的一些信息,如Name(包含路径信息)、操作模式(真实,虚拟)、通道信息、全局选项、Panels等
常见使用 Save 保存 Save As 另存为 Open 打开一个新的CANoe工程配置文件(*.cfg) New 新建一个工程文件,可使用相关模板,如波特率为500k,1个通道的CAN协议的模板 Configuration Overview 可以查看当前工程的一些信息,如Name(包含路径信息)、操作模式(真实,虚拟)、通道信息、全局选项、Panels等 Help 主要可以查看产品信息(软件版本等)、帮助文档、常见信息(Dll版本,通道配置等)、模块以及插件等 Sample Configurations 这里可以打开一些CANoe本身自带的简单的demo工程,学习这些demo工程也能收获颇多 Options 这里主要进行一些配置操作,如通道使用情况,仿真的工作模式(真实总线,仿真总线) CANoe Options 全局设置 Measurement
General 选择通道数、设置仿真工作模式 Data History 设置内存,交换文件、Trace窗口可见数据的大小 Windows/Blocks
Logging 可设置log的保存文件形式 General
License 重读CANoe的lincenses
Test Feature Set 可选择报告文件的形式(XML/HTML、Test Report Viewer) Appearance
Program 可设置语言等 Number Formats 可选择十进制或者十六进制(这个也可以在菜单栏快捷设置) 目前所使用到的就是这些,以后若遇到其他配置在进行更新吧
强化学习就是评价学习,这个和深度学习有啥区别?
我个人理解就是深度学习需要对一个一组特征设置标签, 然后反复训练模型,是这个模型尽量接近 一坨特征数据等于标签。
而强化学习是对一坨特征,模型刚开始不知道标签是具体是啥,随便输出一个值y就行,然后我们实现一个奖励函数,对这个输出值打一个分, 分数越高,说明这个随便输出的值可以认为是临时的标签数据。 相当于在训练过程中动态设置标签数据。
也就是说强化学习核心是需要一个打分系统,不需要预先设置标签。 深度学习模型刚开始可以认为是随机生成一个值的,然后这个值和标签进行比较,这个值越小表示模型越好
强化学习模型刚开始可以认为是随机生成一个值的,然后对这个值进行打分, 这个分值越大表示模型越好。 ===============================
深度学习应用在买基金上:
比如给前30天的涨幅作为特征,今天的涨幅作为标签。 让模型去训练,训练好后去预测每日涨幅。
这里预测的准不准,其实和特征有很大关系,光涨幅这维度的特征去训练,计算训练完也很难达到好的预测效果, 因为基金涨幅的影响因素太多了
强化学习应用在买基金上:
首先得设计一个基金交易环境, 这个环境的输出是近30天的涨幅。输入是买入,卖出,观望。假定本金1万, 打分系统就设计成收益率
然后给前30天的涨幅作为特征, 输出值定义域y[-1, 0, 1], 0表示观望, 我们人为的可以设计一个输出值y的含义:
y>0 表示买入, y=0.2 表示买入2000. y=0. 表示观望,不买也不卖
y<0 表示卖出, y=-0.5 表示卖出持有份额的一半。
在买基金的问题上,强化学习和深度学习是一样的,都不太准确,好处就是比较理性。还有一个缺点训练数据集太小,因为一支基金10年才2500条左右的数据。
很简单的例子,一个疫情的出现,会让医疗相关基金保障,而人工智能预测不了疫情会出现。 但是这并不意味这个不能应用在买基金这件事上, 因为它会有一个策略, 什么时候止盈, 什么时候买入,什么时候加仓。这个策略不是简单的定投。
强化学习应用在游戏上
强化学习在非常擅长应用在游戏领域,因为游戏本身就是环境, 游戏画面就是输出, 基本上所有的游戏基本都有一个分数或者胜利的东西,即打分系统。
比如说玩消灭星星
消灭星星游戏本身就是一个环境,这个环境的输入就是点击位置, 输出就是游戏画面。 消灭的分数就是打分系统。
gym 里有很多基于物理引擎的游戏, 非常适合来练手,学习。
安装 使用mac 系统安装
brew install act 创建项目 项目结构 ├── .github │ └── workflows │ └── app.yaml ├── package.json ├── src │ └── app.ts ├── tsconfig.json └── yarn.lock app.yaml 定义
name: CI on: push jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 - run: npm install - run: npm run build 运行 注意因为默认使用的是github 自己的镜像服务,ghcr.io所以会很慢。。。。 act 支持的命令 Run GitHub actions locally by specifying the event name (e.
因为前两天安装使用的是虚拟机,存在一些问题,因此,今天我通过官网下载了IntelliJ IDEA Educational Edition 2022.1
解决了我通过虚拟机使用中的一些问题,对于虚拟机不能使用中文的情况已解决了,还是挺好的,明天将深入学习一些复杂的语言
Linux默认的python版本是2.7.5,可以使用python -V查看
我们工作中可能需要更高的版本的python,所以这里向大家介绍下自己升级的过程,以CentOS7.5为例
下载python源码包 在官网下载源码包,这里以python3.9.10为例
python官网:https://www.python.org/
下载地址:https://www.python.org/downloads/
选择自己想要的版本,点击后面的Download
将鼠标悬在文件上右键单击,复制链接地址
也可以直接左键单击,下载到本地,再从本地上传至服务器
打开终端,使用ssh命令登陆终端,建议使用root用户或者是拥有sudo权限的用户,因为后面会用到
使用wget命令下载源码,等待下载完成,下载速度取决于网速
wget https://www.python.org/ftp/python/3.9.10/Python-3.9.10.tar.xz 解压下载的源码包并安装 使用 tar 命令解压,在解压的时候使用 -C 参数指定解压之后的位置
tar -xvf Python-3.9.10.tar.xz -C /usr/local/ 参数解释:
-x 从归档中解出文件
-v 详细地列出处理的文件
-f 使用归档文件或 ARCHIVE 设备
-C 改变至目录/usr/local/
使用 cd 命令切换至 /usr/local/ 下,使用 ls 可以看到有一个 Python-3.9.10 的目录,这就是我们刚刚解压出来的文件目录
我习惯用mv重命名一下,命名成python,方便我们使用,也可以不做
使用 cd 命令进入目录,可以使用 ls 看到所有的文件 使用yum安装编译环境
yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel gcc-c++ gcc xz 使用 .
所有的字符本质还是数字
unicode编码 (A=97 a=65)
less is more 代码要精简易读
强制转换 :(类型)变量名 高到低 例: int i =2
byte b = (byte)i
自动转换: 低到高
例:
int i =128
double b = i
b = 128.0
byte范围: -128-127
变量:
局部变量:放于方法里、必须声明和初始化
实例变量:从属与对象(类),如果不初始化,输出的就是它的默认值
类变量/全局变量:方法外,用static修饰
修饰符不存在前后顺序
例:public static final 三者位置可随意变换
下面代码输出值为 5 3 5
&&短路运算,&&之前的错误就不执行之后的代码 所以c++<4 并未开始执行
所以c并未++ 所以c任然等于5
<< 箭头向左 左移 *2 >>箭头向右 右移 /2
当一次性插入数据过多时,values插入耗时更短,此次是使用了mybatis的批处理方式
在mysql的文档(https://dev.mysql.com/doc/refman/5.7/en/insert.html)中这样说的
因此在批处理时,建议使用values
但是在几次批处理测试后,发现无论使用value还是values,900条数据,插入耗时都是1秒左右
1、项目使用的Java版本如何切换
文件 -> 项目结构 -> 项目设置 -> SDK (可以选择本地的或者在线安装) 2、如何查看当前mac笔记本环境变量的Java版本
/usr/libexec/java_home -V 3、如何查看当前mac笔记本所有的Java版本
echo $JAVA_HOME sudo vi ~/.bash_profile export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_321.jdk/Contents/Home source .bash_profile 4、Java的SDK下载地址 - M1 选择哪个版本
ARM 的 DMG
https://www.oracle.com/java/technologies/downloads/#jdk18-mac 5、Java的编译选项有哪些
TRANSLATE with x English Arabic Hebrew Polish Bulgarian Hindi Portuguese Catalan Hmong Daw Romanian Chinese Simplified Hungarian Russian Chinese Traditional Indonesian Slovak Czech Italian Slovenian Danish Japanese Spanish Dutch Klingon Swedish English Korean Thai Estonian Latvian Turkish Finnish Lithuanian Ukrainian French Malay Urdu German Maltese Vietnamese Greek Norwegian Welsh Haitian Creole Persian TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back