写点什么

ARTS 打卡第一天

作者:请务必优秀
  • 2023-08-23
    湖北
  • 本文字数:2233 字

    阅读完需:约 7 分钟

1. Algorithm

用 Rand7() 实现 Rand10()


给定方法 rand7 可生成 [1,7] 范围内的均匀随机整数,试写一个方法 rand10 生成 [1,10] 范围内的均匀随机整数。


方法:


用4个二进制位表示,最多可以表示0-15,只取1-10使用rand7等概率的返回0或11-3 -> 04-6 -> 17   -> 重来
复制代码


代码:


    public int rand10() {        int r;        while(true) {            r = (rand_01()<<3)+(rand_01()<<2)+(rand_01()<<1)+rand_01();            if(r>=1 && r<=10) {                break;            }        }        return r;    }        public int rand_01(){        int r7;        int t;        while(true) {            r7 = rand7();            if(r7 == 7) {                continue;            }else {                if(r7 >= 1&& r7 <= 3) {                    t = 0;                }else {                    t = 1;                }                break;            }        }        return t;    }
复制代码

2. Review

最近在学习 Kubernetes,所以阅读了相关文献,文献链接Level Triggering and Reconciliation in Kubernetes | HackerNoon


The goal seeking behavior of the control loop is very stable. This has been proven in Kubernetes where we have had bugs that have gone unnoticed because the control loop is fundamentally stable and will correct itself over time.


If you are edge triggered you run risk of compromising your state and never being able to re-create the state. If you are level triggered the pattern is very forgiving, and allows room for components not behaving as they should to be rectified. This is what makes Kubernetes work so well.


控制循环基本上是稳定的,并且会随着时间的推移自行纠正,是 k8s 最重要的概念。


Kubernetes is not just observing one signal, but two: the desired state of the cluster, and the actual state. The desired state is the state that humans using the cluster wish for it to be in ( “Run two instances of my application container” ). The actual state ideally matches the desired state, but it is subject to any number of hardware failures and malicious rodents. These can move it away from the desired state. Even time is a factor, as it isn’t possible to instantly have the actual state match the desired state. Container images have to download from the registry, applications need time for graceful shutdown, and so on.


Kubernetes 关注两种状态: 集群的“期望状态”和“实际状态”。


期望状态是使用集群的人希望它处于的状态。实际状态在理想的情况下是与期望状态相等的,但是总会有一些故障影响、各种因素,使它远离理想状态。甚至时间也是一个因素,因为不可能立即让实际状态与期望状态匹配。容器镜像需要时间下载,应用程序需要时间才能正常关闭,等等。


Kubernetes has to take the actual state, and reconcile it with the desired state. It does so continuously, taking both states, determining the differences between them, and applying whatever changes have to be made to bring the actual state towards the desired state.


Kubernetes 必须捕捉到集群的实际状态,并通过各种手段(reconcile)让实际状态逼近到期望状态。它不断地循环这个 reconcile 的过程,确认对比实际和期望之间的差异,做出各种行为,以使实际状态达到期望状态。

3. Technique/Tips

最近大模型很火,但是国内的目前的几个模型用来辅助编程感觉都不太好用,还得是 chatgpt,分享几个 chatgpt 辅助编程的技巧


  1. 保持提示简短准确

  2. 复杂的提示可能会产生相反的效果,因此保持简短和精确总是好的。 如果你给它太多的任务或者答案需要大量的文字,它可能只是拒绝回答/帮助。最好描述程序,然后分别询问每个功能,同时指定与先前代码兼容的提示。


  1. 辅助完成代码

  2. 通过粘贴代码片段并提示建议,ChatGPT 可以帮助完成代码。 这为不同的问题解决技术提供了机会。 通过不断的提示,可以建立一个反馈循环来澄清特定的代码行,这有助于理解和深入了解你可以进行的潜在增强。

  3. 对输入保密代码保持警惕

  4. 你添加到 GPT 其中的任何内容都可能用于未来的迭代训练,所以对于保密代码,不要特别放心的给它。

4. Share

理解偏差在我们身边经常发生,比如理解错需求等等


为什么我们对世界的理解会出现偏差?


理解偏差是怎么产生的。项目经理给你传输的信号是“完成一个需求”,在项目经理脑子中,这个信号的原始信息可能是这样的:编写完成这个功能所需的代码,然后为这段代码写好自动化测试,再将它与现有系统集成好,通过测试人员的验证。


然而之前,你从“完成一个需求”这个信号中解码出来的信息却是:把功能代码写完。这样,问题就出现了。即便这里忽略了噪声的干扰,当编码和解码不是一个版本的时候,无论如何,项目经理的信息都很难准确地传达到你这里。


很多程序员讲东西的通病:讲东西不先谈背景,直奔细节。


要改善编解码,需要从几个角度着手,分别是:


  • 编码器,让信息能输出更准确;

  • 解码器,减少信号过滤,改善解码能力;

  • 编解码算法,也就是各种来自行业的“最佳实践”,协调沟通的双方。


此文章为 8 月 Day21 学习笔记,内容来源于极客时间《左耳听风》ARTS 打卡,强烈推荐该课程!

发布于: 刚刚阅读数: 2
用户头像

还未添加个人签名 2020-05-29 加入

还未添加个人简介

评论

发布
暂无评论
ARTS打卡第一天_请务必优秀_InfoQ写作社区