V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  mathzhaoliang  ›  全部回复第 5 页 / 共 30 页
回复总数  590
1  2  3  4  5  6  7  8  9  10 ... 30  
@dongyx  如果问题只要求算 f(n, n) 的值,那么所有的 v_n=f(n,n) 之间满足一个递推关系,所以可以快速求解。
如果是计算任意 f(x, y) 的值,那确实就得逐个对角线求解了。这个推导过程可以见我的一篇文章
http://pywonderland.com/mabinogion-sheep-problem/
@jingslunt 我出的问题是有确定可行的解的。
@spcharc 你运行的代码肯定做了修改,只计算 f(10000, 10000) 的值一秒都用不了。
@ITJoker 这是一份我写的代码,使用了一个递推关系:

令 v_k = f(k, k), p_k = \binom{2k}{k} / 2^{2k},则

v_{k+1} = (1- p_k) / (1 + p_k) v_k + (2k+1) * (2p_k) / (1+P_k)

```python
from decimal import *

pi = 3.14159265358979

getcontext().prec = 20

def solve_sheep(n):
p = [0 for _ in range(n + 1)]
v = [0 for _ in range(n + 1)]
v[1] = 1
p[1] = Decimal(0.5)
for k in range(2, n + 1):
p[k] = (1 - 1 / Decimal(2 * k)) * p[k - 1]
for k in range(1, n):
w = (1 - p[k]) / (1 + p[k])
v[k + 1] = w * v[k] + (1 - w) * (2 * k + 1)

return v[n]

def estimate_sheep(n):
return 2 * n + pi / 4 - (pi * n)**0.5

print(solve_sheep(10000))
print(estimate_sheep(10000))
```
@no1xsyzy 你的程序逻辑是对的,就是有点太慢了,对 x = y = 10000 的情形跑不动。
@no1xsyzy 虽然我没看懂,但是看到了求逆和计算矩阵乘法,感觉思路有点靠谱。但是对 n=10000 的情形运行太慢了。
@hebin 第三个关系式到了 f(y-1, y) 以后,由于 y-1 < y 就不满足 3 了。
2020-08-12 14:33:25 +08:00
回复了 howencilx 创建的主题 程序员 算法题基本上刷过就忘
@metaquant 看到了,你用的那个就是 pentagonal recurrence 。
@huabalance 你要是直接调用递归是不行的。实际上 f(2,3) 可以解方程组解出来。
2020-08-12 09:44:05 +08:00
回复了 howencilx 创建的主题 程序员 算法题基本上刷过就忘
@metaquant 我看了一下你的笔记,写的不错,能详细查资料写分析是很难得的了。

projecteuler 上的问题其实不太适合拿来练习算法,因为上面的问题大多数具有较深的数学背景,不懂得背后的数学,仅套用递归、分治、动态规划等常见算法得不出有效解来的。

举个简单的例子:你的置顶文章里面的整数分划问题。你那个递归其实跟斐波那契递归一样,效率很低,指数级爆炸。

实际上 p(n) 有一个 pentagon recurrence 关系,用那个来做递归计算效率高很多。
另外输出所有分划是有一个简单的线性遍历方法的,空间复杂度是 n+1,时间复杂度是 p(n)。
2020-08-11 17:12:11 +08:00
回复了 wensonsmith 创建的主题 分享创造 试试能不能收到开源的第一笔打赏 🌚
@tikazyq 你那个爬虫的看着不错,值得更多的鼓励。
2020-08-11 17:10:15 +08:00
回复了 wensonsmith 创建的主题 分享创造 试试能不能收到开源的第一笔打赏 🌚
那也不错了,我做开源以来贴了八九千块钱了,还没见过打赏。
2020-08-09 15:51:20 +08:00
回复了 jwenjian 创建的主题 程序员 我感觉我还是比较适合维护这种 timeline 形式的博客站点
v2 博客帖千千万万,点进去没一个能看的。全是小白文。
2020-08-04 14:51:30 +08:00
回复了 mathzhaoliang 创建的主题 分享发现 车辆环视系统拼接算法入门
@dpawsbear 客气了,去点个 star 就行,提 pr 更好。
2020-07-30 13:33:37 +08:00
回复了 linxiaoziruo 创建的主题 程序员 算法,天启
leetcode 里面没有多少数学,只有套路,你习惯了那个套路就行。
现在论坛里面说到算法言必称 leetcode,这不是好现象。
@taowen 哈哈,好的。不过需要你去路口处采集几个点的 GPS 坐标,所以还得有点体力劳动在里面。
2020-07-28 09:43:13 +08:00
回复了 tctc4869 创建的主题 程序员 造过轮子的程序员们,你们创造过多少个轮子?
我之前造过一个小轮子,可以用纯 python 在仅使用内置函数和模块的情况下几秒内生成几包含几千帧的演示算法的 gif 动画: http://pywonderland.com/gifmaze-cn/
这个也是我人生第一个轮子。后来还造过一些,但是我觉得都没有这个有创意。
Uber 的业务里面地图,路径规划,行为预测相关算法是基本功,你上面列的都是业务常用的。
1  2  3  4  5  6  7  8  9  10 ... 30  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1146 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 24ms · UTC 18:35 · PVG 02:35 · LAX 10:35 · JFK 13:35
Developed with CodeLauncher
♥ Do have faith in what you're doing.