V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  crclz  ›  全部回复第 12 页 / 共 35 页
回复总数  684
1 ... 8  9  10  11  12  13  14  15  16  17 ... 35  
2020-12-25 09:07:18 +08:00
回复了 wumao 创建的主题 程序员 请教一下程序员如何使用思维导图类软件
建议读读思维导图原著,即使用不上,也可以避免误入歧途。
2020-12-24 23:35:15 +08:00
回复了 vertigo 创建的主题 分享发现 挖矿两个月了,有什么想问的吗?
其实等价于买币的期货。
已经一年多没碰 OJ 了...花了 10 分钟想了个思路:

思路:这个问题问的是:“有多少种语法树”。

首先明确一下题目:有 n 个变量。我们简化一下题目,把变量统一换成 i 。
这样,求出的最终结果只需要乘上 n 个元素的全排列数量 A(n,n),就可以得到最终的答案。

然后我们对语法建模。这个文法可以用经典的表达式文法稍作变形得到:
E -> E op T | T
T -> i | (E op E) // 这里假设不能有(((i)))这种套娃,否则就无限种了
op -> 与 | 或

如果没学过文法,可以用直觉理解:
如果一个式子是“(i & i) | i”,
那么这个式子的语法树的推导为:
E => E op T => T op T => (E op E) op i => (i op i) op i => (i & i) | i 。
每一次我把一个符号扩展的时候,就是建立一个子树的动作。

另外,又因为这个文法不是二义文法,所以得到的答案不会重复。

好了,现在就对这个文法的建模完毕了。
同时注意,op 可以不展开,只需要在最后呈上 2^(运算符个数)就行了。

>>> 我们的任务转换为:求满足条件的语法树的种类。条件:语法树的叶子节点有 N 个 i 。

================= 分割线

好,现在一个笨办法就是,用递归,在每个节点,都对所有可能的子树做尝试。但不能无休止的尝试,应该剪枝。剪枝的方法就是:如果当前的 i 的数量大于 N,那么就 return (剪枝)。

然而,这个办法时间复杂度没有经过优化。

我们可以想到第二种方法:
对于每一个非终结符( E, T ),维护一个表 table:key=(非终结符, i 的数量),value=子树种类。
例子:table[('E', 5)]=10 的意思是,以 E 为根节点,满足“有 5 个 i”的语法树的数量为 10.

现在就可以通过 [递推] 来解决了。

===

由于思考时间短暂,文法等推理如果有错误请谅解。(大体的思路是可行的)
2020-12-23 17:55:27 +08:00
回复了 saintatgod 创建的主题 程序员 请教一个关于高并发的问题。
他只不过是 2050 年误入时光机来到 2020 的一个工程师,他只是想找个工作,他有什么错?
2020-12-23 10:30:26 +08:00
回复了 auto8888 创建的主题 C++ 定时群发报文时,怎么做多线程比较优雅?
用信号量啊。信号量是关于生产和消费的。
假设 N 个线程负责定时向 N 个 TCP 连接发送报文。我们称这 N 个线程为 N 个 worker 。
你这个模型就是生产和消费“发报文指令”的。主线程生产指令,worker 消费指令。

每一个 worker 都具有一个信号量 S,这个 S 的意义是“发报文指令”
主线程每秒对每一个 worker 的 S 进行 down,意思是生产一个发报文指令。
同时 worker 的代码是:while true { up(S); send(); }。
2020-12-23 09:54:16 +08:00
回复了 felixin 创建的主题 Android 最轻 android 手机排名推荐
18 年买的小米 6x 挺轻的,168 g 。不知道今年产品线是哪一款。
angular2 到 angluar9 这 7 个大版本的区别比其他框架 7 个小版本的区别都小。

angular 是纯前端的东西,不会存放在你的 springboot 代码当中。angular 通过 http 接口和后端通信。vue 和 react 都差不多。
2020-12-22 20:18:26 +08:00
回复了 CodeXx 创建的主题 Java Java 程序员,公司业务需要做桌面程序,应该用什么技术好
我还是劝你考虑 C#。C#的 WPF 和 Winform 已经久经考验了,框架很成熟,文档和博客也挺多。
2020-12-21 23:28:44 +08:00
回复了 neochen13 创建的主题 程序员 请教大佬们看视频怎么做笔记的?
我用纸和笔。笔就是常见的中性笔,纸是淘宝上买的草稿纸(质量挺好挺,挺厚实的)。

看视频或者其他方式学习的时候,我就拿一页草稿纸出来,然后开始记录。记录完了就扔桌上,等到觉得堆得太多的时候分类收纳。

其实传统的纸和笔是比电子设备效率高的。这和电子书 vs 纸质书一个道理:你有多少张纸,就有多少个屏幕。而你的电子设备只有一个屏幕。

而关于思维导图,现在大部分思维导图都是密密麻麻的或者是大句大段的那种图。那种根本就不叫思维导图,如果你按照那种记笔记,不会提升你的认知。

(推荐读一下原著,了解一下正宗的思维导图(一图抵千言的那种),即使用不上,也避免误入歧途)

其实不必在所有学习过程中都去画思维导图(或者做笔记)。很多时候不用画思维导图就可以很好的理解。记笔记只是次要的,不要喧宾夺主,不要用密密麻麻的笔记代替思考。
2020-12-21 20:39:34 +08:00
回复了 samun 创建的主题 程序员 请教各位老哥一个问题 如何避免扯皮
@samun #19 楼:可以写一个简单的监控程序。如果它 java 程序被关掉的那一分钟你在喝茶 /蹲坑,那么就证明错误不是你引起的。
后端支持 2 种呗,既满足了习惯于用 token 的,又满足传统的
2020-12-20 21:40:54 +08:00
回复了 handylive 创建的主题 Linux 大家用 Linux 或 FreeBSD 当桌面系统主要用来做什么
一年前喜欢用 linux,里面 wx 、qq 、office 、v2ray 折腾折腾能够找到解决方案,勉强可以用。桌面用的是 i3wm,喜欢 i3wm 切换的快速、窗口的管理方式。

之后觉得 cinnamon 也可以用,虽然和纯键盘的方式比起来感觉差点意思,但是的切换方式和窗口布局方式用起来和 i3wm 差别不大。

但是现在不折腾了,老老实实用 windows 了。
2020-12-19 18:54:49 +08:00
回复了 zvl0reqglvd 创建的主题 程序员 请教一个 C++问题,为什么加了 inline 反而效率降低了
1. 看看汇编,用 vscode 比较一下(右键)
2. 开-O1 或者-O2,再测一下速度,并且再比较一下汇编代码
2020-12-19 11:34:09 +08:00
回复了 argc 创建的主题 Windows 请问如何把 Edge 的主页从 360 修改回正常
@Colis 火绒显示保护了我电脑 700 多天,这算不算“能用”?
2020-12-19 11:02:12 +08:00
回复了 argc 创建的主题 Windows 请问如何把 Edge 的主页从 360 修改回正常
@sephinh
@QBugHunter

像楼主这种纯属低能了
2020-12-17 21:03:28 +08:00
回复了 Gea 创建的主题 程序员 因为团队调整,面临换语言的问题, go -> Java
java 我个人认为不重,没它的某个特性就浑身难受。
SpringBoot,Asp.NetCore 非常相似,就证明了语言的形态和框架的形态都几乎收敛到现在的最优状态。
2020-12-17 20:35:01 +08:00
回复了 0gys 创建的主题 奇思妙想 不怕笑话,空中通勤的可行性想法
地球的陆地还只有 30%呢,我可以说海洋资源潜力巨大吗?
1 ... 8  9  10  11  12  13  14  15  16  17 ... 35  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   931 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 36ms · UTC 22:22 · PVG 06:22 · LAX 14:22 · JFK 17:22
Developed with CodeLauncher
♥ Do have faith in what you're doing.