V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  GuuJiang  ›  全部回复第 8 页 / 共 19 页
回复总数  379
1 ... 4  5  6  7  8  9  10  11  12  13 ... 19  
2021-12-29 19:06:32 +08:00
回复了 l33ch 创建的主题 macOS 拼音输入法输入单词 release,最后的 se 两个字母自动消失
@l33ch 虽然使用 release 这个词无法复现,但是我很清楚你在说什么,因为我自己曾经遇到过几次,先介绍个背景知识,使用拼音输入法输入过程中,在选词之前,输入框中出现的带下划线的你输入的字母,这个东西学名叫做 pretext ,在输入过程中目标程序时可以得到这个 pretext 的,而当你描述的这种情况出现时,肉眼可见 pretext 出现了回退,并且此时程序得到的 pretext 为空,你可以做如下试验,任意找一个满足如下条件的文本框
当内容为空时会有类似“请输入 xxx”之类的 placeholder 提示
在这样的文本框里,从你输入任意字母开始,提示文本就消失了,但是当输入到“releas”时,提示又会再次出现,根本原因就是程序读到 pretext 为空,我当时还专门自己写程序验证过,我之前碰到有这种情况的词是“Android”,直到某次更新系统后就正常了,这个只能猜测是使用拼音输入法输入英文单词时的某种特殊 bug
@qkunchanzi 因为你把 oh-my-zsh 之类第三方工具提供的“按 tab 时以光标方式”选择这个 feature 当成了 shell 的默认行为了,在原生的 shell 里 tab 的行为本来就是列出来,至于你说的把命令搞乱了是不存在的,列出来的项并不会成为命令的一部分,随着你的输入越多,精确匹配的项也就越少
这个问题跟隔壁那个问为什么提示符没有了 git 分支显示的有异曲同工之妙
2021-12-23 15:58:04 +08:00
回复了 icySoda 创建的主题 算法 操作数组, 使得其中相同的元素的距离>=k
@icySoda 如果你计算生成的结果频率和你期望的不一致,说明你对概率的计算不对,而且我大概能猜到不对在哪,以 5%这组为例,假设你第一次生成了 10 ,那么接下来的 6 次中不可能再有 10 ,但是 11-14 ,18-21 中每个数出现的概率仍然是 5%/8 ,但是你不能再去统计整组的概率,换句话说,前三条规则表面上说的是三个组整体的概率,实际上说的是其中每个元素的概率,拒绝采样保证没有被丢弃的元素的概率不变,但是如果你要让整组的概率仍然维持不变,这和第 4 条是天然相悖的
2021-12-23 15:45:22 +08:00
回复了 icySoda 创建的主题 算法 操作数组, 使得其中相同的元素的距离>=k
@Mutoo 不会影响的,我给的方案也是同一个思路,用条件概率公式简单算一下就知道了
2021-12-23 15:27:21 +08:00
回复了 icySoda 创建的主题 算法 操作数组, 使得其中相同的元素的距离>=k
“移除”和“加回来”只是形象的说法,实际实现时只需要记录每个数字最后出现位置,随机结果中检查距离最后出现位置是否小于 6 ,如果是则重试
预判到可能会有人怀疑这样改变了概率,其实不会,根据规则定义,6 次之内出现过的数据概率本来就只能为 0 ,而其他的数仍然是原始的概率,如果不相信的话思考下下面这个简化的例子就明白了
只用一个 6 面骰子,如何产生 1-5 的均匀分布随机数,答案就是如果扔到 6 就不算,重新扔一次,通过条件概率可以很容易计算出这样操作产生的随机数就是 1-5 均匀分布,简单地说就是对于一个随机试验,抛弃某些特定的结果不会影响未被抛弃的那些结果的概率
2021-12-23 15:15:16 +08:00
回复了 icySoda 创建的主题 算法 操作数组, 使得其中相同的元素的距离>=k
每生成一个数,就在接下来的 6 次随机中从随机池中暂时移除,6 次以后再加回来
生成每个数时如果随机到了一个已被移除的数则重试
2021-12-21 19:56:40 +08:00
回复了 Jooooooooo 创建的主题 随想 与其关注"的地得", 大家不如先摒弃使用"进行"
2021-12-21 18:39:24 +08:00
回复了 ssshooter 创建的主题 程序员 各位图形大佬们,理解 glsl 有什么窍门吗?
理解 shader 最关键的一步是要转换视角
在传统的绘图算法中,我们通常是站在图形的视角,建立“图形->坐标”的映射,就以最简单的画一个圆来说,思路是根据圆心及半径计算哪些点在圆上,然后设置这些点的颜色
而在 shader 中,我们要站在像素点的视角上,建立“坐标->颜色”的映射,每次仅着眼于一个点,根据这个点的坐标与要绘制的图形间的关系确定出该点的颜色,还是回到上面这个画圆的例子,在 shader 中的思路是计算该点与圆心的距离并与半径进行比较,从而确定该点是否在圆上,再进一步确定颜色
idea 自带的 code fragment 功能,不但支持你想要的插入后自动转义,而且还支持对已转义后的字符串进行编辑,不但支持 json ,还支持其它数 10 种语言,使用方法,alt+enter ,在弹出的快捷菜单中选择“insert fragment”,如果已经插入过的则是“edit fragment”
2021-12-20 22:27:12 +08:00
回复了 hyifan 创建的主题 宽带症候群 今晚发现微信打视频电话流量居然会自己走内网。
这不是视频通话类应用的标准流程嘛?能够 p2p 的情况下优先采用 p2p 以提供更高的质量,关键词搜索 TURN 、STUN 、ICE 等就都明白了
2021-12-13 21:38:55 +08:00
回复了 n0th1ng 创建的主题 算法 人员分组问题
@n0th1ng
如果是这样的话就非常简单了,前面 n-1 组是 ceil(m/n),剩下的放最后一组

PS:如果不想使用浮点运算及 ceil 函数,可以使用(m+n-1)/n 来代替
2021-12-13 18:28:54 +08:00
回复了 n0th1ng 创建的主题 算法 人员分组问题
@n0th1ng
如果按“尽可能多的分给前面的组”,那么 11 就应该是(8,1,1,1)
如果是“平均的部分占比最多”,那么(3,3,3,2)应该是比(4,4,2,1)更优

你还是先把定义想清楚吧,或者如果你是想解决某个实际中的场景,不妨说下原始问题,以免成为一个 XY 问题
2021-12-13 18:06:38 +08:00
回复了 n0th1ng 创建的主题 算法 人员分组问题
“尽量分到前面”缺乏准确的定义,(3,3,3,2)难道不是比(4,4,2,1)更“平均”?
2021-12-09 17:56:57 +08:00
回复了 Richard14 创建的主题 问与答 Git 将 A 分支的内容修改后提交到 B 分支应该如何操作?
1. git checkout B
2. git checkout A .
3. 修改
4. git commit
5. git push

关键是第二步中的第二个参数“.”,不能漏,表示把 A 分支的文件检出到当前工作空间
2021-12-08 14:17:36 +08:00
回复了 aikilan 创建的主题 程序员 JS 如何复制一个函数?
ctrl+c/ctrl+v (狗头

能问出这种问题,要么是你曲解了面试官的意思,要么面试官是个煞笔
使用 maven-dependency-plugin 插件里的 copy-dependices
2021-12-05 14:13:09 +08:00
回复了 LeeReamond 创建的主题 问与答 正则表达式可以匹配 html 标签这种成对的内容吗?
@3dwelcome
除去我上面提到的扩展语法以外,标准的正则表达式仅能匹配正则语言,而“成对的括号”属于典型的非正则语言,从正则语言的定义就能断定不可能存在这样的表达式,我再举个非正则语言中的最简单例子
“若干个 a 后面跟若干个 b ,a 和 b 的数量相等”
不使用递归或计数等扩展语法,能够匹配这样的串的正则表达式也是不存在的
至于为什么一定要把这两种扩展语法独立出来讨论,上面以及解释过了,仅使用 DFA 是不可能实现这两种语法的
2021-12-05 05:02:36 +08:00
回复了 LeeReamond 创建的主题 问与答 正则表达式可以匹配 html 标签这种成对的内容吗?
先说结论,标准的正则表达式是无法匹配的,非正则语言中的一个经典例子就是成对的括号
但是,今天的各种正则表达式引擎中增加了各种扩展语法,其中有两种语法能够解决这个问题,一种是递归引用,一种是带计数器操作,详情参见 https://www.regular-expressions.info/refrecurse.html
不过严格来说,这两种扩展语法已经不能算作正则表达式了,这两个语法相比起其它一些扩展语法有着本质的区别,其它一些扩展语法仅相当于语法糖,没有改变仅能匹配正则语言这一边界,但是这两种语法能够匹配部分非正则语言,从实现原理来说,匹配正则语言只需要用到 DFA ,而类似成对括号这种包含递归或计数的场景则必须使用下推自动机
2021-12-04 14:28:53 +08:00
回复了 Higurashi 创建的主题 问与答 算法 4 中的双栈算数表达式求值算法
@Higurashi
1. 规约规则就是字面上的意思,你可以理解为“把(1+1)变成 2”的这个过程,也就是这个算法主要在干的事
2. 表示由 X 、exp 和 Y 三部分组成的一个字符串,其中 X 不含左括号(自然也不含右括号),exp 为一对括号包裹的最简表达式,Y 为剩余后缀,X 和 Y 可为空,这一段描述了这样一个事实“把一个表达式中的最左边一个右括号(由 X 中不含左括号来保证)及其匹配的左括号包含的这个表达式替换为该表达式的值,所得到的表达式对于该算法来说和原表达式是等价的”
举例说明的话就是一个形如 X(1+1)Y 的表达式等价于 X2Y
3. eval(s)表示 s 这个表达式的值,例如 eval("1+1")=2
2021-12-04 13:05:22 +08:00
回复了 Higurashi 创建的主题 问与答 算法 4 中的双栈算数表达式求值算法
假设全都是二元运算符(一元运算符的情况同理,你可以自行补充)

先定义辅助符号<==>,读作“在该算法意义下等价”
s1 <==> s2 表示对于表达式 s1 和 s2 应用上述算法得到的结果相等

第一步,先证明规约规则 1
X...<exp>...Y <==> X...eval(exp)...Y
其中 X 不包含左括号,sub 形如(<v1><op><v2>),由入栈顺序可知,当碰到第一个右括号时,ops 的栈顶元素一定是 op ,vals 的栈顶元素一定是 v1 和 v2 ,根据算法实现,对 v1 和 v2 求值并重新入栈后,此时的栈状态、剩余表达式等和对右边的表达式应用算法时的状态是完全一致的,所以最终结果也是等价的
第二步,记 p(n)为含有 n 对括号的合法表达式,证明 p(n) <==> eval(p(n)),对 n 应用数学归纳法
1. 当 n=0 时,显然成立
2. 应用规约规则 1 可得 p(n+1) <==> p(n)
1 ... 4  5  6  7  8  9  10  11  12  13 ... 19  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2174 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 42ms · UTC 00:02 · PVG 08:02 · LAX 17:02 · JFK 20:02
Developed with CodeLauncher
♥ Do have faith in what you're doing.