go

C语言程序设计100例之(7):级数求和

烈酒焚心 提交于 2021-01-13 03:24:43
例7 级数求和 题目描述 已知: S n =1+1/2+1/3+…+1/n。显然对于任意一个整数 k,当 n 足够大的时候,S n >k。 现给出一个整数 k,要求计算出一个最小的 n,使得 S n >k。 输入格式 一个正整数 k 输出格式 一个正整数 n 输入样例 1 输出样例 2 (1)编程思路。 用简单的循环完成多项式求和。循环控制条件为和S<=K。 (2)源程序。 #include <stdio.h> int main() { int k,n; double s; s=0; n=0; scanf("%d",&k); do { n++; s+=1.0/n; }while (s<=k); printf("%d\n",n); return 0; } 习题7 7-1 Deck 本题选自北大POJ题库 (http://poj.org/problem?id=1607) Description A single playing card can be placed on a table, carefully, so that the short edges of the card are parallel to the table's edge, and half the length of the card hangs over the edge of the table. If

一文搞懂参数传递原理

▼魔方 西西 提交于 2021-01-12 20:00:45
前言 最近一年多的时间陆续接触了一些对我来说陌生的语言,主要就是 Python 和 Go ,期间为了快速实现需求只是依葫芦画瓢的撸代码;并没有深究一些细节与原理。 就拿参数传递一事来说各个语言的实现细节各不相同,但又有类似之处;在许多新手入门时容易搞不清楚,导致犯一些低级错误。 <!--more--> Java 基本类型传递 先拿我最熟悉的 Java 来说,我相信应该没人会写这样的代码: @Test public void testBasic() { int a = 10; modifyBasic(a); System.out.println(String.format("最终结果 main a==%s", a)); } private void modifyBasic(int aa) { System.out.println(String.format("修改之前 aa==%s", aa)); aa = 20; System.out.println(String.format("修改之后 aa==%s", aa)); } 输出结果: 修改之前 aa==10 修改之后 aa==20 最终结果 main a==10 不过从这段代码的目的来看应该是想要修改 a 的值,从直觉上来说如果修改成功也是能理解的。 至于结果与预期不符合的根本原因是理解错了参数的值传递与引用传递。

华为和苹果狭路相逢,为何VR不亮AR亮?

泄露秘密 提交于 2021-01-12 08:47:48
文|编程浪子 来源|智能相对论(aixdlun) 华为和苹果在AR赛道狭路相逢了。 7月13日,华为AR眼镜专利曝光。在此之前,已经爆出富士康代工的苹果AR项目半透明镜片已经进入试产阶段,并且已经申请了眼球控制等新的专利技术,而且将在2023年发布AR/VR头显。 在AR领域动作频频的不仅是华为和苹果。近期Facebook也注册了用于VR显示器的光栅和用于麦克风的声音分离技术;谷歌以非常可观的收购条件一亿八千万收购了Focals。 很明显各巨头都在积极地布局,而相关技术公司的融资、并购也在如火如荼地进行,在今年疫情最艰难的四月份,AR 隐形眼镜公司 Mojo Vision 4 月份获得了5100万美元的融资。 Strategy Analytics最新发布的报告《COVID-19对AR和VR市场的影响》预测,2020年AR产业受到疫情影响市场萎靡之后,在2021年全球AR市场将会出现强力的复苏。 在产业方向上,UNITY的报告则认为,工业AR已经逐渐走出了教学的场景范畴,开始进入更具有应用性的工业场景。 AR在后疫情时代已经明显进入快车道,那么当华为和苹果两家世界级巨头相逢在这领域,随着美国对华为的制裁越来越步步紧逼,双方在任何一个新领域的竞争,对公司的商业前景都将会具有关键局部战役一样的长远影响。 01 苹果与华为同时发力,一种AR两种方向 库克已经明确的提到过

wireshark抓包工具

两盒软妹~` 提交于 2021-01-12 08:31:08
wireshark抓包工具 了解使用wireshark抓包工具 分类: 基础类 标签: 抓包 , 三次握手 , 四次挥手 一、简介   1、什么是wireshark     百度:     Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。     在过去,网络封包分析软件是非常昂贵的,或是专门属于盈利用的软件。Ethereal的出现改变了这一切。在GNUGPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。Ethereal是目前全世界最广泛的网络封包分析软件之一。     开源软件,用GPL协议发行,所以可以免费在任意数量机器上使用        2、主要应用     帮助管理员解决网络问题     帮助安全工程师用来检测安全隐患     开发人员用来测试协议执行情况     用来学习网络协议     等等。   3、特性     跨平台支持windows/unix平台     在接口实时抓包     能详细显示包的详细协议信息     可以打开/保存捕捉的包     可以导入导出其他程序支持的包数据格式     可以通过多种方式过滤包     多种方式查找包

监控神器:Premotheus+Grafana安装

倖福魔咒の 提交于 2021-01-12 07:54:17
一、Premotheus 介绍 Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。使用Go语言开发,是GoogleBorgMon监控系统的开源版本。它通过HTTP协议从远程的机器收集数据并存储在本地的时序数据库上。 特点: 多维数据模型(时序列数据由metric名和一组key/value组成) 在多维度上灵活的查询语言(PromQl) 不依赖分布式存储,单主节点工作. 通过基于HTTP的pull方式采集时序数据 可以通过pushgateway进行时序列数据推送(pushing) 可以通过服务发现或者静态配置去获取要采集的目标服务器 多种可视化图表及仪表盘支持 详细介绍见: https://prometheus.io/ 二、Premotheus 组件架构 Prometheus生态系统由多个组件组成,它们中的一些是可选的。多数Prometheus组件是Go语言写的,这使得这些组件很容易编译和部署。 PrometheusServer 主要负责数据采集和存储,提供PromQL查询语言的支持。 客户端SDK 官方提供的客户端类库有go、java、scala、python、ruby,其他还有很多第三方开发的类库,支持nodejs、php、erlang等。 PushGateway 支持临时性Job主动推送指标的中间网关。 PromDash

Linux 服务器上建立用户并分配权限

谁说胖子不能爱 提交于 2021-01-12 04:27:24
转载自: https://www.cnblogs.com/SH-xuliang/p/8422753.html ,看这篇博客解决了我许久以来的困惑。 查看用户 1 whoami #要查看当前登录用户的用户名 2 who am i #表示打开当前伪终端的用户的用户名 3 who mom likes who 命令其它常用参数 1 参数 说明 2 -a 打印能打印的全部 3 -d 打印死掉的进程 4 -m 同am i,mom likes 5 -q 打印当前登录用户数及用户名 6 -u 打印当前登录用户登录信息 7 -r 打印运行等级 1. 创建用户 adduser这个命令,我们很容易理解其作用,因为完全可以顾名思义:add是英语“添加”的意思,user是英语“用户”的意思,因此adduser就是用于添加用户。 1 adduser newname // 新建用户newname useradd 只创建用户,创建完了用 passwd lilei 去设置新用户的密码。 adduser 会创建用户,创建目录,创建密码(提示你设置),做这一系列的操作。 其实 useradd、userdel 这类操作更像是一种命令,执行完了就返回。而 adduser 更像是一种程序,需要你输入、确定等一系列操作 删除用户 deluser是delete和user的缩写,delete是英语“删除”的意思,user是“用户

Flask 作者 Armin Ronacher:我不觉得有异步压力

╄→гoц情女王★ 提交于 2021-01-12 02:59:05
https://zhuanlan.zhihu.com/p/102307133 英文 | I'm not feeling the async pressure 【1】 原作 | Armin Ronacher,2020.01.01 译者 | 豌豆花下猫@Python猫 声明 :本翻译基于 CC BY-NC-SA 4.0 【2】授权协议,内容略有改动,转载请保留原文出处,请勿用于商业或非法用途。 异步(async)正风靡一时。异步Python、异步Rust、go、node、.NET,任选一个你最爱的语言生态,它都在使用着一些异步。异步这东西有多好,这在很大程度上取决于语言的生态及其运行时间,但总体而言,它有一些不错的好处。它使得这种事情变得非常简单:等待可能需要一些时间才能完成的操作。 它是如此简单,以至于创造了无数新的方法来坑人(blow ones foot off)。我想讨论的一种情况是,直到系统出现超载,你才意识到自己踩到了脚的那一种,这就是背压(back pressure)管理的主题。在协议设计中有一个相关术语是流量控制(flow control)。 什么是背压 关于背压的解释有很多,我推荐阅读的一个很好的解释是: Backpressure explained — the resisted flow of data through software 【3】。因此

Flask 之父:我不觉得有异步压力

主宰稳场 提交于 2021-01-12 02:50:34
英文 | I'm not feeling the async pressure 原作 | Armin Ronacher,2020.01.01 译者 | 豌豆花下猫@Python猫 声明 :本翻译基于CC BY-NC-SA 4.0授权协议,内容略有改动,转载请保留原文出处,请勿用于商业或非法用途。 异步(async)正风靡一时。异步Python、异步Rust、go、node、.NET,任选一个你最爱的语言生态,它都在使用着一些异步。异步这东西有多好,这在很大程度上取决于语言的生态及其运行时间,但总体而言,它有一些不错的好处。它使得这种事情变得非常简单:等待可能需要一些时间才能完成的操作。 它是如此简单,以至于创造了无数新的方法来坑人(blow ones foot off)。我想讨论的一种情况是,直到系统出现超载,你才意识到自己踩到了脚的那一种,这就是背压(back pressure)管理的主题。在协议设计中有一个相关术语是流量控制(flow control)。 什么是背压 关于背压的解释有很多,我推荐阅读的一个很好的解释是:Backpressure explained — the resisted flow of data through software【3】。因此,与其详细介绍什么是背压,我只想对其做一个非常简短的定义和解释:背压是阻碍数据在系统中流通的阻力。背压听起来很负面—

Python异常处理

北城以北 提交于 2021-01-10 15:14:17
欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。 问题描述 大家在使用python语言写代码的时候难免会出一些错误,而才入门的朋友们往往不知道是哪里出了错或者不知道自己错在哪里、什么错误。 所以我们要知道是哪行代码出错,其次室错误的类型是什么,错在那个细节,逐步分析,从而解决错误并改正。 解决方案 首先我们要了解异常才能处理异常 那我们来就说一说异常的定义:程序运行过程中出现的错误或遇到的意外情况 其次是错误的类型分别有:语法错误、运行错误、逻辑错误 而我们通常出错的理由无非是这些:输入错误、下标越界、类型错误、操作不当等等 接着我们来看一看报错的构成吧 接下来我们的重点来了,在python异常处理会用到try-except语句 我们来熟悉,一下try-except语句它的语法结构吧 try: <语句块1> except <异常类型>: <语句块2> 下面我们来写一个小程序来使用try-except语句 try: num = eval(input("请输入一个整数: ")) print(num**2) except NameError: print("输入错误,请输入一个整数!") 该程序执行效果如下: >>> 请输入一个整数: NO 输入错误,请输入一个整数! 从而我们得出了它的错误为NameError

每日一面

落爺英雄遲暮 提交于 2021-01-10 14:38:28
1. 为啥需要 负载因子(defaultLoadFactor) 现在主流的 HashMap,一般的实现思路都是开放地址法+链地址法的方式来实现。 即数组 + 链表的实现方式,通过计算哈希值,找到数组对应的位置,如果已存在元素,就加到这个位置的链表上。在 Java 8 之后,链表过长还会转化为红黑树。 红黑树相较于原来的链表,多占用了一倍的空间,但是查询速度快乐一个数量级,属于空间换时间。 同时,链表转换红黑树也是一个耗时的操作。并且, 一个效率高的哈希表,这个链表不应该过长 。 所以,如果数组的很多元素上面已经有值了,那么就需要将这个数组扩充下,重建哈希表,也就是 rehash,因此这个 rehash 相当耗时。那么什么时候扩容呢? **当数组填满的时候?**那么在数组快要填满的时候,会发生很多需要将元素加到对应位置的链表上的情况,并且增加产生红黑树的概率。这显然不可取。 这个 defaultLoadFactor 就是一个比较合适的, 哈希表需要扩容的时候的 数组中有占用元素的比例 。 2. 这个比例如何计算? 其实,这个并没有一个统一的结论,因为不同场景下,肯定考虑的方面不同,这个数字最好能最通用。但是, 目前不同语言的 defaultLoadFactor 并不一样 ,比如 Java 是 0.75,Go 中是 0.65,Dart 中是0.8,python 中是0.762.