Alice

(1)区块链技术

蓝咒 提交于 2020-09-26 12:21:43
    区块链是 分布式数据存储 、 点对点传输 、 共识机制 、 加密算法 等计算机技术的新型应用模式。它利用 块链式数据结构 来验证与存储数据、利用 分布式节点共识算法 来生成和更新数据、利用 密码学 的方式保证数据传输和访问的安全、利用由 自动化脚本代码 组成的 智能合约 来编程和操作数据。     通俗的讲,区块链就是一种 去中心化 的 分布式 (分布在多地、能够协同运转的)账本数据库系统。 1 区块     区块链由一个个区块(block)组成。区块很像数据库的记录,每次写入数据,就是创建一个区块。                             区块链的数据结构示意图 区块头     区块头中记录了版本号、上一个区块的Hash地址、merkle根、区块创建时间戳、区块的工作量难度目标以及用于计算目标的参数值。 所谓Hash就是计算机可以对任意内容,计算出一个长度相同的特征值。区块链的Hash长度是256位,这就是说,不管原始内容是什么,最后都会计算出一个256位的二进制数字。而且可以保征只要原始内容不同,对应的Hash一定是不同的。 每个区块的Hash都是不一样的,可以通过Hash标识区块。 如果区块的内容变了,它的Hash一定会改变。 比特币使用SHA-256哈希函数,该函数生成一个大小为256位(32字节)的哈希值(输出)。如图所示

TIOBE 8 月编程语言:C、Java 差距拉大,R 语言盛行

只愿长相守 提交于 2020-08-19 19:12:23
编程语言社区 TIOBE 最新发布了 8 月编程语言排行榜。 相比上个月,本月 TIOBE 指数整个体变化并不大。C 语言依然保持强劲地增长势头,与第二名 Java 之间差距逐月增大,从上个月相差 1.35% 的份额逐步增长到 2.55% 的差额。 在 TIOBE Top 10 榜单中,R 语言上个月被 TIOBE 官方称之为“史无前例的高光时刻” , 本月继续保持,且在数据分析和统计计算等领域,也成为开发者最受欢迎的编程语言之一。回看 2019 年 8 月,R 语言还处于第 20 位,一年后,一连上升了 12 个名次,到达了第 8 位。对此,TIOBE 官方预测,R 语言也有望成为 2020 年 TIOBE 年度编程语言。 除了以上,Go、Swift、SQL 三种语言也进行了位置角逐: Swift 在本月下降 2 个名次,从第 10 名降到了第 12 名; SQL 将其取而代之,成为第 10 名。 其他编程语言排名 同样值得注意的是,Groovy 重新进入了 TIOBE 编程语言排行榜的 TOP 20名,并且 Hack 在第 44 位,也成功进入了前 50 名。 下面列出了完整的 21-50 名,因为是非官方发布的,所以可能存在遗漏: 第 51-100 名如下,由于它们之间的数值差异较小,仅以文本形式列出(按字母排序): ABC, Alice, APL, AutoLISP,

2020百度之星程序设计大赛复赛

南楼画角 提交于 2020-08-19 17:22:47
A. Battle for Wosneth (Hdu 6838) 题目大意 初始 \(Alice\) 有无限血, \(Bob\) 有 \(m\) 滴血。 \(Alice\) 有 \(p\%\) 命中 \(Bob\) ,并使 \(Bob\) 减少一滴血,自身回复一滴血。 \(Bob\) 有 \(q\%\) 概率命中 \(Alice\) ,并使 \(Alice\) 减少一滴血,但自身血不变。问当 \(Bob\) 血量减少为 \(0\) 时, \(Alice\) 的期望血量变化值是多少。结果对 \(998244353\) 取模。 解题思路 当 \(Bob\) 血量大于 \(1\) 时,设 \(Alice\) 命中一次 \(Bob\) ,自身血量变化的期望值为 \(x\) ,则(此处 \(p,q\) 为小数) \[x = p \times (1 - q) + ( 1 - p ) \times ( - q + x ) \] 解得 \[x = 1 - \frac{q}{p} \] 所以Bob从 \(m\) 滴血扣到 \(1\) 滴血时,Alice的血量变化期望值为 \[(m-1)\times x = (m - 1) ( 1 - \frac{q}{p}) \] 当 \(Bob\) 剩下一滴血时,由于如果 \(Alice\) 命中他,则Bob 不会反击 ,这是与上方的区别所在,设 \(Alice\

1025.除数博弈 -----力扣每日打卡Day5

青春壹個敷衍的年華 提交于 2020-08-19 05:43:12
目录 1.题目 2.题目分析 3.动态规划代码实现 4.究极解答 —— 找规律 代码: 1.题目 爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。 最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作: 选出任一 x,满足 0 < x < N 且 N % x == 0 。 用 N - x 替换黑板上的数字 N 。 如果玩家无法执行这些操作,就会输掉游戏。 只有在爱丽丝在游戏中取得胜利时才返回 True,否则返回 false。假设两个玩家都以最佳状态参与游戏。 示例 1: 输入: 2 输出:true 解释:爱丽丝选择 1 ,鲍勃无法进行操作。 示例 2: 输入: 3 输出:false 解释:爱丽丝选择 1 ,鲍勃也选择 1 ,然后爱丽丝无法进行操作。 提示: 1 <= N <= 1000 C语言函数头: bool divisorGame ( int N ) { } 来源:力扣(LeetCode) 戳我前往题目 2.题目分析 老实说,这题第一眼看到我是没办法做的。这种博弈题,如果正向观察,因为是选择任一的X,无法确定的,如果按照正向思维来做是很难考虑的。所以,我们可以反向思维,从最小的开始看。 这种一个个从小倒推回去,表示的一种状态,我们可以用动态规划的方法。首先确定 初始条件 : dp[1] = flase , dp[2] = ture .通过示例可以得出

Java实现 LeetCode第30场双周赛 (题号5177,5445,5446,5447)

人盡茶涼 提交于 2020-08-18 16:15:01
这套题不算难,但是因为是昨天晚上太晚了,好久没有大晚上写过代码了,有点不适应,今天上午一看还是挺简单的 5177. 转变日期格式 给你一个字符串 date ,它的格式为 Day Month Year ,其中: Day 是集合 {“1st”, “2nd”, “3rd”, “4th”, …, “30th”, “31st”} 中的一个元素。 Month 是集合 {“Jan”, “Feb”, “Mar”, “Apr”, “May”, “Jun”, “Jul”, “Aug”, “Sep”, “Oct”, “Nov”, “Dec”} 中的一个元素。 Year 的范围在 ​[1900, 2100] 之间。 请你将字符串转变为 YYYY-MM-DD 的格式,其中: YYYY 表示 4 位的年份。 MM 表示 2 位的月份。 DD 表示 2 位的天数。 示例 1: 输入:date = “20th Oct 2052” 输出:“2052-10-20” 示例 2: 输入:date = “6th Jun 1933” 输出:“1933-06-06” 示例 3: 输入:date = “26th May 1960” 输出:“1960-05-26” 提示: 给定日期保证是合法的,所以不需要处理异常输入。 class Solution { public String reformatDate ( String

offer到手!记一次拼多多面试经验

你离开我真会死。 提交于 2020-08-18 13:51:47
面试前 面完蚂蚁后,早就听闻拼多多这个独角兽,决定也去面一把。首先我在脉脉找了一个拼多多的HR,加了微信聊了下,发了简历便开始我的拼多多面试之旅。这里要非常感谢拼多多HR小姐姐,从面试内推到offer确认一直都在帮我,人真的很nice。 一、笔试 不用多说了,上来就是四道算法题 第一题 题目描述 自动售货机里有 N 瓶复制可乐。复制可乐非常神奇,喝了它的人会复制出一个自己来!现在有 Alice, Bob, Cathy, Dave 四个人在排队买复制可乐。买完的人会马上喝掉,然后他和他的副本会重新去队伍的最后面排队买可乐。问最后一个买到复制可乐的人叫什么名字? 输入描述: 输入仅有一行,包含一个正整数 N (1 <= N <= 1,000,000,000),表示可乐的数量。 输出描述: 输出喝到最后一罐复制可乐的人的名字。 示例1 说明: 前8个喝到可乐的人依次为:Alice, Bob, Cathy, Dave, Alice, Alice, Bob, Bob. 解题思路 代码 第二题 题目描述 四年一度的世界杯又来了!小多在公司内发起了一个票选最强球星的活动。共有 N 个候选球星,每位投票者需要在选票上为每位候选球星评定一个实例等级,等级由英文字母表示,'a' 级最高,'z' 级最低,共26级。 我们称候选球星 X 强于候选球星 Y,当「 X 的评级比 Y 高」的票数高于「 Y

.Net Core微服务入门全纪录(七)——IdentityServer4-授权认证

点点圈 提交于 2020-08-18 07:23:41
前言 上一篇【 .Net Core微服务入门全纪录(六)——EventBus-事件总线 】中使用CAP完成了一个简单的Eventbus,实现了服务之间的解耦和异步调用,并且做到数据的最终一致性。这一篇将使用IdentityServer4来搭建一个鉴权中心,来完成授权认证相关的功能。 IdentityServer4官方文档: https://identityserver4.readthedocs.io/ 鉴权中心 创建ids4项目 关于IdentityServer4的基本介绍和模板安装可以看一下我的另一篇博客【 IdentityServer4 4.x版本 配置Scope的正确姿势 】,下面直接从创建项目开始。 来到我的项目目录下执行: dotnet new is4inmem --name IDS4.AuthCenter 执行完成后会生成以下文件: 用vs2019打开之前的解决方案,把刚刚创建的ids项目添加进来: 将此项目设为启动项,先运行看一下效果: 项目正常运行,下面需要结合我们的业务稍微修改一下默认代码。 鉴权中心配置 修改Startup的ConfigureServices方法: // in-memory, code config builder.AddInMemoryIdentityResources(Config.IdentityResources); builder

什么是证书链?

心不动则不痛 提交于 2020-08-17 18:31:14
证书链是什么链么,能发币么? 我日常工作中,总要在手机里备一份CA的证书链文件,经常有人要我发一份我们的证书链文件。这时候我想说,“我们是权威的政务服务电子认证机构,我们的证书链是可以从网上下载到的。" 不要懵,证书链通常都是公开,不需要保密!此时你是不是感到疑惑,通常我们的证书不都是存在U盾中的么,怎么能轻易交给别人? 为了说明这些问题,我要讲一些概念。本着越基础,越不好讲的原则,我从公钥算法讲起,还有数字签名、PKI,还要介绍一下区块链、电子证照、密码机、签名验签服务器、和USBkey等概念。 公钥算法 公钥算法是一种加密算法。加密算法分为对称加密和非对称加密算法,非对称加密算法又称为公钥算法。 对称加密的关键在密钥。传递加密数数据,Alice选取密钥key,加密明文发送给Bob,Bob采用相同的key解密数据。 使用对称密钥时,通信双方必须拥有相同的密钥。通常,对称密钥采用线下方式进行分发,或者采用一种可靠方式进行分发。例如,Alice和Bob坐在一起,共同选择了一个密钥,这个密钥用来做数据加密。 这个简单的分配密钥的方式,不适合规模较大的群体。群体中,要求每2个的通信内容其他人都不能解密。以3个人为例,A、B、C三个人,需要分配AB/AC/BC3个密钥;当系统中有N个人时,需要分配 N*(N-1)/2个密钥,每个人都要保存与其他N-1个人通信的密钥。此时

[codeforces 1373B] 01 Game 删除01或10的博弈

五迷三道 提交于 2020-08-17 04:38:11
Educational Codeforces Round 90 (Rated for Div. 2) 参与排名人数12840 [codeforces 1373B] 01 Game 删除01或10的博弈 总目录详见 https://blog.csdn.net/mrcrack/article/details/103564004 在线测评地址 http://codeforces.com/contest/1373/problem/B Problem Lang Verdict Time Memory B - 01 Game GNU C++17 Accepted 30 ms 3600 KB 题目大意:给定一个0,1构成的串,若该串中有10或01就可将其删除,否则,什么也做不了。Alice先手,Bob后手,给定一个0,1构成的串,轮到的哪位,什么都做不了,哪位就判定为输。Alice赢,输出DA,反之,输出NET。 题中例子模拟如下 1011001 DA 删除过程如下 1011001→11001→101->1 1011001→11001→110->1 1011001→11001->101->1 1011001→11001->110->1 1011001→10101->101->1 1011001→10110->110->1 1011001→10110->101->1 可以看到,无论怎么删

量子纠缠2——CHSH不等式

微笑、不失礼 提交于 2020-08-15 11:30:57
问题 有 A lice和 B ob两个人,随机给他们两个数x和y(0或1),然后A和B根据他们得到数(x和y)给两个个数a和b(0或1)。 规则如下: 如果输入的x和y都是1,那么,Alice和Bob给出不一样的数获胜;否则,Alice和Bob给出相同的数获胜。 Alice和Bob在拿到x和y后就不能交谈了,但是在拿到前可以交流。 问: Alice和Bob怎样约定获胜的可能性最大? 一共有以下十六中情况: x y a b result 0 0 0 0 赢 0 0 0 1 输 0 0 1 0 输 0 0 1 1 赢 0 1 0 0 赢 0 1 0 1 输 0 1 1 0 输 0 1 1 1 赢 1 0 0 0 赢 1 0 0 1 输 1 0 1 0 输 1 0 1 1 赢 1 1 0 0 输 1 1 0 1 赢 1 1 1 0 赢 1 1 1 1 输 经典解法 我们可以看到,如果Alice和Bob随机输出a和b,即输出的a和b与输入的x和y无关,那么他们获胜了可能性是50%,也就是0.5。 如果有提前约定呢? 当输入x和y都是0的时候,Alice和Bob可以约定都出0(约定都出1也是一样的道理),这样,输入是(0,0)的25%可能是一定获胜。 但是当你的输入是1的时候,你不知道另一个人是的输入是0还是1。 如果约定出0,即,无论输入是什么都出0,则,获胜的可能性是75%,只有输入是