我尝试使用sha1代码计算加密文件(file.gpg)的Python3。
我测试两种功能。
import hashlib
import gnupg
def sha1sum(filename):
h = hashlib.sha1()
b = bytearray(128*1024)
mv = memoryview(b)
with open(filename, 'rb', buffering=0) as f:
for n in iter(lambda : f.readinto(mv), 0):
h.upda
这个问题涉及到对输入超过一个位的函数所讨论的Deutsch问题的简单概括。这一次,我们有一个布尔函数f,它以一个4位数作为输入,输出0或1,即f:{0,1}4→{0,1}。因此,f的输入是16个可能的4位二进制数字之一:
0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111.
我们还被告知f是以下两种类型之一:
either f is a constant function, i.e., f(x) is the same for all 16 possible
Collections.shuffle()向后遍历Collection的每个索引,然后将其替换为包含或之前的随机索引。我想知道为什么,所以我试着做同样的事情,但是用Collection中的任何随机索引交换。
下面是Collections.shuffle()代码的洗牌部分:
for (int i=size; i>1; i--)
swap(arr, i-1, rnd.nextInt(i));
这是我的算法:
Random r = new Random();
for (int i = 0; i < a.size(); i++) {
int index = r.nextIn
JavaDoc of BigInteger使我感到非常不安全,例如,下面的构造函数说:
BigInteger(int bitLength, int certainty, Random rnd)
使用指定的BigInteger构造一个可能是素数的随机生成的正bitLength。
为什么只有可能?为什么不确定呢?我还能相信结果会是素数吗?