V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  geelaw  ›  全部回复第 36 页 / 共 177 页
回复总数  3521
1 ... 32  33  34  35  36  37  38  39  40  41 ... 177  
2021-04-19 17:28:07 +08:00
回复了 sunhk25 创建的主题 Python Python numpy 如何优雅的进行矩阵的并行计算
arr = np.array(arr)
match_arr = np.reshape(arr, (-1, 1)) + np.reshape(arr, (1, -1))

大概是这么个意思,参考 broadcast 的概念。

如果每个元素的计算过程不能用 numpy 内置的运算表达则无法实现,因为 GIL 的存在。
2021-04-19 17:22:03 +08:00
回复了 DinoStray 创建的主题 问与答 使用 uint64 作为 map 的 key, 有哪些优化技巧?
🤧 如果 key 是连续范围且该范围内稠密,考虑用 vector 。
2021-04-19 17:21:04 +08:00
回复了 DinoStray 创建的主题 问与答 使用 uint64 作为 map 的 key, 有哪些优化技巧?
字典树也可以考虑一下。
2021-04-16 17:33:05 +08:00
回复了 xavierskip 创建的主题 Windows Windows 设置应用打不开了,怎么办?
Oops 看来上面已经有人贴了类似答案了,以及我终于意识到为什么 Add-AppxPackage 失败了。

#6 的步骤 6 、7 可以替换为运行

Add-AppxPackage -Register -DisableDevelopmentMode -Path $manifest
2021-04-16 17:31:27 +08:00
回复了 xavierskip 创建的主题 Windows Windows 设置应用打不开了,怎么办?
删除 Temp 里的任何文件造成的效果都应该在重启后消失。

可以尝试用下面的步骤修复 Settings 的问题:

1. 打开 PowerShell
2. Ctrl+Shift+右键 任务栏,选择 Exit Explorer
3. 在 PowerShell 里运行

Get-Process explorer | Stop-Process

4. 如果 Explorer 重启,再次执行步骤 2,此时 Explorer 应该会正常退出
5. 在 PowerShell 里运行

Get-Process SystemSettings | Stop-Process -Force
$appx = Get-AppxPackage windows.immersivecontrolpanel
$target = $env:LOCALAPPDATA + '\Packages\' + $appx.PackageFamilyName
$bak = $appx.PackageFamilyName + '.bak' + [guid]::NewGuid().ToString('b')
$manifest = $appx.InstallLocation + '\appxmanifest.xml'
Rename-Item -LiteralPath $target -NewName $bak
Start-Process explorer

6. 用 Cortana 搜索 Settings,右键,选择 App settings (理论上此时 Settings 已经可以用了,但是由于刚刚删除了 isolated storage,重置一下会更安全)
7. 点 Reset,此时 Settings 会被关闭,之后可以重新打开 Settings
2021-04-14 21:44:30 +08:00
回复了 Virace 创建的主题 Python 关于读写文件执行速度
为什么你要关掉 GC ?
2021-04-14 21:41:02 +08:00
回复了 microka 创建的主题 问与答 迷惑性开关 UI,到底是开还是关?
图 1 是使用那些 cookie,图 2 是不使用。

颜色已经很明确了,当然不能只用颜色识别。
考虑日常生活里带有 01 标记的开关,或者公共卫生间的门闩,都可以知道没有被遮住的文字是目前的状态。
你可以用 .vscofe/settings.json 改变打开模拟终端时使用的 shell 命令(加入设置环境变量的实参),但我不知道这对播放按钮是否有效。
2021-04-08 11:07:04 +08:00
回复了 libasten 创建的主题 问与答 微软的 C# 和 .NET 未能发展好是不是和名字起的不好也有关系
C Sharp 和 Java 音节数是一样的。
2021-04-04 11:08:02 +08:00
回复了 liudaqi 创建的主题 算法 n 的 n 次幂,时间复杂度是多少?
如果是说输入 N 的二进制表示,输出 N^N 的二进制表示,则时间复杂度是 2^(n + Theta(log n)) 其中 n = log N 为输入长度。
由于答案有指数长度,算法至少是指数时间,利用快速幂和 Fourier 变换可以做到前述时间复杂度。
为什么楼上都有这么多答案…

这个问题会因为楼主使用了何种 C 语言编译器、如何申请的堆内存有千奇百怪的答案。如果楼主用的 malloc 内部维护一个结构,且优先考虑直接分配刚刚释放的内存,且没有发生优化,是不可能会有这么大的差别的。
2021-03-29 20:38:01 +08:00
回复了 zictos 创建的主题 Python Python 读写文件时不用 with 也不关闭文件,这样的风格好吗?
@Contextualist #36
@ipwx #37

我想象中的

for A in B:
..body

的展开是

TMP = B.__iter__() # 编译器生成的迭代器的 __exit__ 会执行剩余的 finally
with TMP:
..while True:
....A = TMP.__next__()
....body

即和 C# 里的 foreach 展开包含 finally IDisposable.Dispose 一样。
2021-03-27 12:25:17 +08:00
回复了 zictos 创建的主题 Python Python 读写文件时不用 with 也不关闭文件,这样的风格好吗?
这样的写法在标准 Python 中可以导致文件在进程结束前不被关闭,因为在内存充足的时候,垃圾回收器可以选择完全不回收不可达对象。

在目前的 CPython 实现中,这种写法可以保证文件立刻被关闭,因为 CPython 采用引用计数来辅助管理内存,引用计数到达 0 的时候会立刻回收,从而关闭文件。

在 IronPython 中,则不一定,现在 CLR 提供要求暂时不运行 GC 的 API,如果在运行这段代码前,有人 commit 了足够的内存要求不运行 GC,且这段代码之后程序不再分配内存,则文件永远不会被关闭。

不要面向巧合编程。
2021-03-27 09:44:04 +08:00
回复了 hzcer 创建的主题 分享创造 Flash 保存计划,保存那些老的 Flash
推荐收录 http://niu-niu.com/ 牛牛游戏
2021-03-23 15:55:03 +08:00
回复了 Felldeadbird 创建的主题 C# C# 如何像动态语言那样动态创建对象呢?
如果你想支持任意类型,需要用反射。如果你想支持有限种类型,可以自己写代码。

要用 Type type 的无参数构造器构造对象,可以用 Expression.Lambda<Func<object>>(Expression.New(type)).Compile() 获得一个委托,此后调用该委托,效率非常高。
不知道网易云怎么实现的,但想要实现还是很简单的,比如用 localStorage,每个页面打开的时候生成一个 GUID 并监听 localStorage 的变化。开始播放的时候设置 localStorage 里一项(比如 currentPlayer )为自己的 GUID ;如果这一项变化且变化后不是自己的 GUID 则暂停播放。
2021-03-19 20:22:54 +08:00
回复了 ligiggy 创建的主题 程序员 [不懂就问] 大家是怎么学习加密解密的
类比一下大学的(连续)数学。

如果你想学会如何计算导数和积分(知道实用算法是怎么跑的),那么随便看看各种科普文章,自己动手写写代码就 OK 。

如果你想学习实变函数(学习可证明安全、密码分析),那么需要看密码学教材。不需要先学习实用密码学算法也可以学习这个。

我主要学习可证明安全,启蒙教材是 A Graduate Course in Applied Cryptopgraphy ( Boneh 、Shoup 著)。
用隐函数定理理解也很简单,考虑 f(x, y) 在 g(x, y) = 0 约束下的极值。

假设极值点邻域内 g(x, y) = 0 可以显化为 y = y(x),则在这一点
h(x) = f(x, y(x))
具有极值,因此 h'(x) = 0 即
f_x(x, y(x)) + f_y(x, y(x)) y'(x) = 0.
注意 n = (1, y'(x)) 是隐函数在该点处切线的法向量,隐函数求导定理表明该向量和 grad g = (g_x(x, y(x)), g_y(x, y(x))) 正交,而 grad f = (f_x(x, y(x)), f_y(x, y(x)))。
也就是说 n 和 grad g 、grad f 都正交,因此 grad g 和 grad f 线性相关。

考虑乘子函数 F(x, y, k) = f(x, y) + kg(x, y),可以看出 F 仅当 g(x, y) = 0 且 grad f 、grad g 线性相关时有驻点,因此可以通过研究 F 的驻点研究 f 在 g=0 约束下的极值。
2021-03-18 15:23:41 +08:00
回复了 xiaokongwu 创建的主题 Java 既然浮点数据类型不精确,那么浮点数存在的意义在哪?
@xiaokongwu #16 浮点数是指对于数 X*B^Y 直接存储了 X 和 Y 的格式,且两者没有必然的绑定关系,在一定范围内可以独立变化。double 和 float 也都是存储了 X 和 Y 。如果你说的格式里 Y 被 X 决定,则不是浮点数。

BigDecimal 的开销主要不在于它是个 object,而是在于它可以达到任意精度,即使去掉 object 的 overhead 仍然不如 double 高效。另外 BigDecimal 看起来是可以根据需要变化自己的长度的,而 primitive 常常是定长的,因此 Java 的模型下它必须是 object 。

可以参考 CLR 的 System.Decimal,这是一个定长的十进制浮点数,但范围和精度也当然都是固定的。

另外你怎么就知道 BigDecimal 计算没有精度问题呢?根据文档,BigDecimal 是十进制浮点数,它不能精确表达 1/3 。
2021-03-18 14:56:16 +08:00
回复了 xiaokongwu 创建的主题 Java 既然浮点数据类型不精确,那么浮点数存在的意义在哪?
今日震惊小知识:你说的那种 decimal 也是浮点数。

浮点数和定点数是表示某进位制下有限小数的方法,然而楼主的问题和浮点不浮点没关系。
有限长度,无论什么编码都不能精确表达所有有理数;长度无上界时可以高效、精确表达所有有理数;不需要高效的时候可以表达所有可计算数;然而无论如何都无法表达所有实数。

很多场景不需要精确,但需要速度,所以采用简短但不精确的表达。它的意义在于够用。
1 ... 32  33  34  35  36  37  38  39  40  41 ... 177  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1626 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 101ms · UTC 16:57 · PVG 00:57 · LAX 08:57 · JFK 11:57
Developed with CodeLauncher
♥ Do have faith in what you're doing.