加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 动态 > 正文

竞赛比完代码模型怎么处理?

发布时间:2021-02-11 14:46:02 所属栏目:动态 来源:互联网
导读:在科学和数学领域,许多看似无关的主题之间存在某些共同的特质。这样的相似性有时能同时为这两个领域带来重大的进展,不过很多时候这样的相似性只是单纯地很有趣。 去年 12 月,谷歌一位物理学家 Adam Brown 发现:一种基本量子计算算法与一种用于计算无理数

在科学和数学领域,许多看似无关的主题之间存在某些共同的特质。这样的相似性有时能同时为这两个领域带来重大的进展,不过很多时候这样的相似性只是单纯地很有趣。

去年 12 月,谷歌一位物理学家 Adam Brown 发现:一种基本量子计算算法与一种用于计算无理数 π 的奇妙方法之间存在一种异常精确的关系。「目前来说这个发现只是单纯很有意思,但我们希望找到思考事物的新方式,人们未来也许能使用这种方式寻找之前无法看到的联系。」Brown 说,「对于一个现象,多种思考角度是非常有用的。」

在网上发布的一篇预印本论文中(目前尚未完成同行评议),Brown 表明两个看似无关的问题之间存在某种数学上的相关性。其中一个问题是为量子计算机提出的著名的 Grover 搜索算法,理论上它比任何经典搜索算法都更快。另一个问题则是一个出人意料的过程:通过统计理想弹性球的碰撞次数来得到任意精度的 π 值。

量子算法

量子计算要用到量子比特,每个量子比特可以同时表示两个状态,而它们通常用离子或超导回路构建。从原理上看,一定数量的量子比特能表示和操作比经典比特多指数级数量的组合。之前,人们觉得利用这种概率性质来进行计算似乎是一场白日梦,但是研究者还是成功设计出了可从量子比特提取有用信息的算法。

第一个量子算法是彼得 · 秀尔(Peter Shor)1994 年提出的秀尔算法,当时他正在新泽西州的贝尔实验室工作。秀尔算法能高效地将整数分解为质因数,也由此给现今的许多加密方案带来了潜在的威胁。该算法的诀窍是将整数分解重构为一个新问题:确定一个序列的重复周期。这本质上是一种傅立叶变换,通过在量子比特的全集上使用全局运算就能找到这个序列。

第二个基本算法则是 Lov Grover 于 1996 年在贝尔实验室独立提出的 Grover 算法,它有着大不一样的工作方式。「秀尔算法和 Grover 算法是两种最典型的量子算法。」德克萨斯州大学奥斯汀分校的 Scott Aaronson 说,「即便在今天,我们所知的绝大部分量子算法都要么受秀尔算法启发,要么受 Grover 算法启发,要么同时受两者启发。」
 

以前,我曾将 Ebiten 图形库用于 Go,以便与孩子们一起编写一些游戏。但是,对于一般的“应用程序”开发(即需要“小部件 widgets”,例如按钮,菜单等),Ebiten 并非真的适合。因此,我一直在寻找可以使用的 Go UI 库。然而大多数都使用 cgo,但我真的希望我的应用程序是纯 Go。这纯粹是个人喜好,我不知道使用 cgo 而不是纯 Go 会有什么影响。如果我要使用 cgo,我认为首选的 UI 库肯定是 Fyne[1]。Fyne 看起来是一个非常全面的框架,如果您不介意 cgo,我绝对会建议你看看看 Fyne。

还有其他一些库,但没有吸引我。他们说你永远不应该编写自己的安全性代码,并且我也相信你不应该编写自己的 UI 库。但是我忽略了这个建议...

因此,我写了一个 GoUI[2] !!

这纯粹是那些“抓痒”的项目之一。虽然现在还很早,但 UI 库的基本知识(由 Ebiten 进行实际渲染)正在慢慢融合。在详细介绍下面细节之前,我想先说明一下,我认为程序在 CLI 达到了顶峰。其次,我不是 UI 编程人员……写这些是我个人的兴趣。

GoUI 的基本思想是两种类型的图形元素。一个是可以包含其他面板或小部件的面板(Panel)。另一个是小部件,它是基本的 UI 元素(按钮,文本输入等)。我们目前使用的面板类型有 HPanel(水平添加)和 VPanel(我让你猜)。从技术上讲,我们确实有其他面板,例如工具栏,但这实际上只是 HPanel,需要一点点定制工作。总体而言,如果我可以结合其他现有面板/小工具来构造一些“新”东西,那么我会做的。如果我需要优化或与已有产品脱节,那么我将做一些全新的事情。

我们目前拥有的小部件是:

  • ImageButton:(由应用程序提供的单击/未单击的图像)。
  • TextButton:基本的彩色矩形,其中包含您想要的任何文本。
  • Checkbox:与 TextButton 相同,但是旁边有一个小方框,可以打对勾。
  • EmptySpace:完全由我控制。用于强制其他小部件之间的空间。一旦添加适当的填充,该填充可能会消失。
  • Label:文本标签,不能输入。
  • Text Input:文本输入框。
  • RadioButtonGroup:这是一个面板,其中包含 vpanel 或 hpanel(取决于标志),然后其中包含许多复选框。复选框将图像(带有刻度)替换为常规的单选按钮。这是重新使用现有窗口小部件的好例子。如果事实证明我需要对复选框进行足够的修改以使其不适合用作单选按钮,那么我将不得不放入一个真正的单选按钮。但是目前,它运行良好。

我还没有完成菜单,模态窗口等,但是正如我所说的……这还是早期。

现在,让我们尝试一个超级简单的 Demo。

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!