V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  CRVV  ›  全部回复第 11 页 / 共 28 页
回复总数  542
1 ... 7  8  9  10  11  12  13  14  15  16 ... 28  
只有一种确定的顺序还是可以随意指定顺序?


1. 只有一种顺序
如果只有一种顺序,按这个顺序建一个索引,然后 Index Scan 就好了,一个用户回答过的问题通常不会很多吧。
跳转到第 x 页这种需求不可能快,不用考虑了。

如果在这种排序下,每个用户回答过的问题都没有聚集在一起,这个方法应该就够快了。
如果有聚集在一起,用 vance123 的方法

2. 顺序可以任意指定
2.1 给每一种顺序建一个索引,然后回到 1,这个通常不现实
2.2 如果不能给每种顺序建索引,就没有通用的 O(n) 以内的算法了。基本上都要 Sequential Scan 。当然有各种优化的方法,但这种事情依赖于非常具体的需求。
2020-12-08 10:57:26 +08:00
回复了 liufeicai 创建的主题 奇思妙想 健 康 码为什么不是动态的
这就是西安的玩法,所有地方都要扫码才让进。
喀什也有一套类似的,但是管得不严。
多数地方是楼主看到的这种,出一个二维码,工作人员看一眼就过去了。
还有的健康码只是一个像二维码一样的东西,但是有一部分被挡住了根本扫不出来。
2020-12-04 21:56:11 +08:00
回复了 uubooks 创建的主题 奇思妙想 乱想:什么时候能我们才能不需要这些乱七八糟的线
楼主的例子也分好几类的

1. 打印机之类的东西一直可以无线

2. 长距离的无线供电不太现实

要传递能量且不经过介质
可以用微波,但这样相当于你直接坐在微波炉里
可以用更短的电磁波,但这样等同于电阳能电池板,需要对准才行,不动的电器好像还可以。目前也没有那么高效的电阳能板
也可以用磁场电场之类的,但为了家庭供电开一个大磁场,不太合适吧

3. 显示器类的
DP2.0 有 80.00 Gbit/s 的带宽,无线传输达不到这个数。
问题在于要提高无线传输的带宽需要提高频率,但频率高了就需要对准,同上不动的东西还可以


所以 1 楼说的没错,要实现可用的像 Wi-Fi 一样方便的供电和 DP HDMI 级别带宽的数据传输,都是目前看起来不可能实现的事情。
2020-12-02 18:27:09 +08:00
回复了 tuding 创建的主题 奇思妙想 厕所明确贴了标识严禁吸烟
@lakin

咖啡因属于第二类精神药品,然后百度百科说第二类精神药品是毒品,但我不认同这个说法。
咖啡因被列入第二类精神药品,是因为它确实是精神药品且有医疗作用,但咖啡因的管制状态和海洛因冰毒大麻完全不一样,在京东淘宝都能买到纯咖啡因片。
尼古丁不属于精神药品,是因为它没有医疗作用,根本没人做这个东西来卖,自然没有管制的必要了。
抽烟挥发出来的气体里包含了有毒的尼古丁,但是咖啡不会挥发出来咖啡因。
喝咖啡确实会上瘾,但目前科学界的共识是适量饮用咖啡对人无害。

结论是咖啡和烟草完全不类似,不要相提并论。
2020-11-16 12:04:45 +08:00
回复了 ukipoi 创建的主题 程序员 请问下,比较简单的实现 0.5 到 2 之间的随机数的方法
这里的关键是楼主没想清楚自己要的是什么

给定的要求只有一个,>1 和 <1 的概率相等。
这样不能确定唯一的答案,所以下面给出了很多不同的解答。
给的解释又超出了楼主能解理的数学,所以估计现在更不懂了。

除了上面那个给定的要求,显然还存在一个要求是概率在某种程度上是均匀的,但均匀又存在不同的均匀。

比如把所有结果 round 到一个最接近的数,然后
0.5 0.6 0.7 0.8 0.9 1.0 1.2 1.4 1.6 1.8 2.0 的概率相同
1/2.0 1/1.8 1/1.6 1/1.4 1/1.2 1/1.0 1.2/1 1.4/1 1.6/1 1.8/1 2.0/1 的概率相同
这两个也不一样,都可以被认为是均匀的

上面说的,其实不仅 “每一个 Y 出现的概率都是 1/K” 对浮点数是错的,“所有确定的 X 都是 1/K 的概率” 也是错的。
因为浮点数本身是不均匀的,但那个随机数是均匀的。

建议楼主放弃这个问题吧,需要补的课挺多的。
2020-11-16 11:41:14 +08:00
回复了 ukipoi 创建的主题 程序员 请问下,比较简单的实现 0.5 到 2 之间的随机数的方法
@ukipoi

首先你需要说清楚你在讨论实数还是在讨论 64 位浮点数

如果是实数,那么 “K 是-1 到 1 的所有数的总量” 这句话不成立,后面就不用讨论了。
不能设 K 是无限,然后把 K 当一个有限的数来做后续的讨论。

如果是 64 位浮点数,那么 “每一个 Y 出现的概率都是 1/K” 是错的。
比如
2 ^ 0.1000000000000002 和 2 ^ 0.10000000000000014 的结果都是 1.0717734625362934
https://www.postgresql.org/docs/current/datatype-character.html

网页内搜索 SQL standard
This somewhat bizarre exception is required by the SQL standard

通常都用 VARCHAR 的,没这个问题

或者上 PostgreSQL 全用 TEXT 完事。
2020-11-13 17:59:33 +08:00
回复了 ukipoi 创建的主题 程序员 请问下,比较简单的实现 0.5 到 2 之间的随机数的方法
如果只考虑数学问题(不考虑什么浮点数运算的事情),也不考虑边界([] 和 () 的差别),这个问题是这样的

已有一个 0-1 之间均匀分布的随机数 x,在上面加一个变换 f,变成 0.5-2 之间分布的随机数 y,要求 0.5-1 的概率和 1-2 的概率相等。问这个变换是什么。

先假定 f 在 0.5-2 之间是单调连续函数(不单调的 f 当然也可以有,先不考虑了)

那么,f(0.5) = 1 且 0.5 <= f(x) <= 2 的 f 都符合要求,比如 f(x) = x + 0.5

如果再增加一个条件,y 在 0.5 - 2 的整个区间内的概率密度都不为 0
那么只要 f(0) = 0.5, f(0.5) = 1, f(1) = 2,f 就满足要求,你随便假设比如 f(x) = ax^2 + bx + c 然后解 a b c 就好了。
如果假设 f(x) = 2^(ax+b) ,就得到 lsylsy2 给出的指数函数。
类似的还有很多符合条件的函数。

如果再增加一个条件,0.5-1 和 1-2 之间的概率密度分别都是常数,那么两边都是直线。
给定 f(0) = 0.5, f(0.5) = 1, f(1) = 2,结果是唯一的,就是那个分段函数。
2020-11-12 23:16:00 +08:00
回复了 fuzhuo233 创建的主题 Apple M1 跑分干掉了去年最高端的 16 寸 mbp
如果再回去看 geekbench 的测试结果,那 Intel 这个数字确实太惨了。

5950X 的单核性能比 9880H 快那么多
2020-11-12 23:11:03 +08:00
回复了 fuzhuo233 创建的主题 Apple M1 跑分干掉了去年最高端的 16 寸 mbp
@hjc4869

这个很确定,是 2400 的,不是原装的内存。
是我在买这台机器之前很久另买的 16Gx2
2020-11-12 22:59:11 +08:00
回复了 fuzhuo233 创建的主题 Apple M1 跑分干掉了去年最高端的 16 寸 mbp
@hjc4869

对的,我直接继续用 openssl 测了,在 AMD Ryzen 7 4700U 上

openssl speed -evp aes-256-xts -bytes 134217728 -multi 1
evp 6355342.75k

增加 -multi,大约到 -multi 4 的时候就会达到最大值了,有两倍多吧
evp 13651520.72k

这台机器的内存是 128bit 2400 DDR4 (38.4 GB/s)
那台 4770HQ 的机器是 128bit 1600 DDR3 (25.6 GB/s),最多能跑到 6776863.34k

所以 openssl 大约能跑到内存带宽 / 3
2020-11-12 22:17:26 +08:00
回复了 fuzhuo233 创建的主题 Apple M1 跑分干掉了去年最高端的 16 寸 mbp
@hjc4869

这玩意其实可以直接测,在我的机器上是这样的结果
都是 openssl 1.1.1h

Intel i7 4770HQ

openssl speed -evp aes-256-xts
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
aes-256-xts 203022.96k 825995.49k 1748770.28k 2642286.01k 3120154.71k 3192675.31k

openssl speed -evp aes-256-xts -multi 4
evp 808941.94k 2783501.61k 6091693.65k 9758843.90k 10974879.74k 10624166.57k

四核处理器,单核 3 G/s 多核 10 G/s


AMD Ryzen 7 4700U

openssl speed -evp aes-256-xts
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
aes-256-xts 515543.39k 1919414.38k 4367495.42k 6155646.63k 6991994.88k 7083595.09k

openssl speed -evp aes-256-xts -multi 8
evp 3404665.32k 12602658.88k 27869853.10k 36364921.17k 41717743.62k 41641061.03k

八核处理器,单核 7 G/s,多核 40 G/s

https://www.geekbench.com/doc/geekbench5-cpu-workloads.pdf
这里有说 geekbench 也直接用 AES 指令,说了用 4k block,说了 256 bits AES

我更怀疑 geekbench 的代码有问题了
2020-11-12 21:41:28 +08:00
回复了 fuzhuo233 创建的主题 Apple M1 跑分干掉了去年最高端的 16 寸 mbp
https://browser.geekbench.com/v5/cpu/compare/4653108?baseline=4648107
https://browser.geekbench.com/v5/cpu/compare/4642178?baseline=4648107

下面单项的第一个 AES-XTS 的单核和多核性能

苹果是 4.59 G/s 和 16.7 G/s
5950X 是 7.15 G/s 和 12.4 G/s
i9-9880H 是 1.82 G/s 和 8.41 G/s

3 个处理器都是 8 核的,最快的 16.7 G/s 肯定没到内存带宽。

为什么 5950X 的单核比 9880H 快那么多?
为什么 5950X 的多核速度还不到单核的 2 倍?

这数字要说是瞎编的我都信。
2020-11-10 17:55:04 +08:00
回复了 zuiluo 创建的主题 C++ 感觉自己写出来的 C++ 很 bullshit, 如何改进
在一个文件写到死

这个问题好办,学会手写 Makefile 就解决了。
2020-11-10 17:53:50 +08:00
回复了 HenrikC 创建的主题 程序员 面试的时候怎么判断面试者是不是速成的?
找一个求职者写过的东西,最好是有点技术含量的,从写这个东西的目的开始,问技术细节和每一个技术决策的理由或者权衡。
当然要能这样问问题并且能聊得下去,对面试官的要求也很高。已经高到很少见的水平了。
2020-11-03 16:01:30 +08:00
回复了 James369 创建的主题 程序员 有人用过国密算法吗,它有哪些好处?
@FlyingShark

你没有明白我的意思,我只是在名词解释。
我没说实现有后门,我也没说算法有后门,我也没说实现没有后门,我也没说算法没有后门。

重点是 RSA 和 RSA Security 这两个词,这是雷锋和雷锋塔的关系。
你不能说 RSA 怎么怎么样,要说 RSA Security,否则会带很强的误导性。
2020-11-03 10:52:10 +08:00
回复了 James369 创建的主题 程序员 有人用过国密算法吗,它有哪些好处?
@FlyingShark
这里的 RSA 是 RSA Security,是一家公司。
这家公司是发明 RSA 算法那三个人初创的。

NSA 的事情和 RSA 算法缺陷毫无关系。
2020-10-29 11:07:42 +08:00
回复了 v2410117 创建的主题 Python 请教如何使用 Python 直接对二进制文件进行修改
@v2410117

如果你连改文件内容都需要来发帖子问,改 ELF 然后还要能跑属于你不可能完成的事情,放弃吧。

https://blog.0patch.com/2017/11/did-microsoft-just-manually-patch-their.html
这是微软做过然后能上新闻的操作。
2020-10-29 10:53:49 +08:00
回复了 Yc1992 创建的主题 C++ c++ 有没有能够对标 golang 的 goroutine 的协程库啊?
@Yc1992
我本来想说的就是这一段。

When a coroutine blocks, such as by calling a blocking system call, the run-time automatically moves other coroutines on the same operating system thread to a different, runnable thread so they won't be blocked.

这里说的不是把多个 coroutine 放到同一个线程上来跑。是说如果有一个 coroutine 阻塞住了一个 thread,就把其它的 coroutine 放到别的线程上跑。

然后有一句话,The programmer sees none of this, which is the point. The result, which we call goroutines, ...

所以总结一下就是,有一个协程,它 block 住了(比如在 python 的 async function 里面写了一句 time.sleep ),这样其它的协程就不能跑了对吧,那我们写一个高级一点的 runtime,把能跑的协程放到其它 thread 上跑。
并且把这些过程都隐藏起来,什么 yield 之类的东西都没有了,都是 runtime 里面的事情。

所以说这是一个基于 coroutine 的想法,或者说是一个经过了大改的 coroutine,还专门说了这个东西叫 goroutine 不叫 coroutine 了。

所以还是上一条回复里面说的,它改完了就不是 coroutine 了。
2020-10-29 10:20:28 +08:00
回复了 Yc1992 创建的主题 C++ c++ 有没有能够对标 golang 的 goroutine 的协程库啊?
@Balthild
@hronro

https://en.wikipedia.org/wiki/Coroutine#Comparison_with_threads
协程,coroutine,co 是 cooperatively,合作协作的意思。
相对的概念是 preemptively,抢占

这是这个 coroutine 原本的意思。

在一个 stackful coroutine 的实现上加上抢占式调度,那当然可以做。
但做出来的东西就不叫 coroutine 了。
1 ... 7  8  9  10  11  12  13  14  15  16 ... 28  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2519 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 30ms · UTC 15:46 · PVG 23:46 · LAX 07:46 · JFK 10:46
Developed with CodeLauncher
♥ Do have faith in what you're doing.