我收到一条信息消息:当我第一次在Android Studio中启动模拟器时,"访客未在7秒后重启".
我很好奇如何阻止它,因为当它在我的屏幕上大约40秒时,我无法在模拟器中做任何事情.
编辑:我的问题是:rand()%N
被认为非常糟糕,而使用整数运算被认为是优越的,但我看不出两者之间的区别.
人们总是提到:
低位不是随机的rand()%N
,
rand()%N
是非常可预测的,
你可以将它用于游戏,但不能用于加密
有人可以解释这些问题是否属于这种情况以及如何看待?
低位的非随机性的想法应该使我所展示的两种情况的PE不同,但事实并非如此.
我想像我这样的很多人总是会避免使用rand()
,或者rand()%N
因为我们总是被教导它非常糟糕.我很想知道rand()%N
有效地生成c的"错误"随机整数是多少.这也是Ryan Reich在如何从一个范围内生成随机整数的答案的后续.
说实话,那里的解释听起来很有说服力; 尽管如此,我还以为我试一试.所以,我以非常天真的方式比较分布.我为不同数量的样本和域运行两个随机生成器.我没有看到计算密度而不是直方图的重点,所以我只计算直方图,只是通过观察,我会说它们看起来都一样均匀.关于提出的另一点,关于实际的随机性(尽管是均匀分布的).I - 再次天真地计算这些运行的置换熵,对于两个样本集都是相同的,这告诉我们两者之间关于事件排序没有区别.
因此,出于多种目的,在我看来,rand()%N
这样就好了,我们怎么能看到它们的缺陷呢?
在这里,我向您展示了一种非常简单,低效且不太优雅(但我认为正确)的计算这些样本的方法,并将直方图与排列熵一起得到.对于不同数量的样本,我在{5,10,25,50,100}中显示了域(0,i)和i的图:
我想在代码中没什么可看的,所以我会留下C和matlab代码用于复制目的.
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main(int argc, char *argv[]){
unsigned long max = atoi(argv[2]);
int samples=atoi(argv[3]);
srand(time(NULL));
if(atoi(argv[1])==1){
for(int i=0;i<samples;++i)
printf("%ld\n",rand()%(max+1));
}else{
for(int i=0;i<samples;++i){
unsigned long
num_bins = (unsigned long) max + 1,
num_rand = (unsigned long) RAND_MAX + 1,
bin_size = num_rand / num_bins,
defect = …
Run Code Online (Sandbox Code Playgroud) 给定三个字符数组,说size(a) = [N,80]
,size(b) = [N,100]
;; size(c) = [N,10]
;
当N=5
a
,b
并且c
看起来像,
ans =
5×80 char array
‘efawefref’
‘Afreafraef’
‘afeafefaef’
‘afeafeaffa’
‘afeafaefae’
Run Code Online (Sandbox Code Playgroud)
我想找到唯一条目(不是组合),这是 x = [a, b, c]
我当然可以做,unique([a, b, c])
但是对于这些数据来说这太慢了。N~1e7
例,
a = [ 'timon ';
'simba ';
'nala ';
'timon ';
'mufasa'];
b = [ 'boar ';
'lion ';
'lionese';
'boar ';
'lion '];
c = [ 'chubby';
'small ';
'fat ';
'chubby';
'fit '];
unique([a,b,c],'rows') …
Run Code Online (Sandbox Code Playgroud) 我注意到在评估向量时,对我来说是一种不可预测的行为.直接在循环中进行索引似乎真的不同.谁能给我一些帮助呢?我知道可能会解释它是如何进行每个操作的,所以我需要一些关于如何查找它的键
感谢您提前感谢
例:
x=[0.05:.01:3];
n=size(x,2);
y1 = (8*x-1)/(x)-(exp(x));
for i=1:n
y2(i)=(8*x(i)-1)/(x(i))-(exp(x(i)));
end
a1=[x;y1];
a2=[x;y2];
plot(x,y1, 'red')
hold on
plot(x,y2, 'blue')
Run Code Online (Sandbox Code Playgroud)
这里的情节:http: //i.stack.imgur.com/qAHD6.jpg
结果:
a2:
0.05 -13.0513
0.06 -9.7285
0.07 -7.3582
0.08 -5.5833
0.09 -4.2053
0.10 -3.1052
0.11 -2.2072
0.12 -1.4608
0.13 -0.8311
0.14 -0.2931
0.15 0.1715
0.16 0.5765
a1:
0.05 6.4497
0.06 6.4391
0.07 6.4284
0.08 6.4177
0.09 6.4068
0.10 6.3958
0.11 6.3847
0.12 6.3734
0.13 6.3621
0.14 6.3507
0.15 6.3391
0.16 6.3274
Run Code Online (Sandbox Code Playgroud) 简单问题在这里.我有阵列:
a = [ 600 746 8556 90456 ]
b = [ 684 864 8600 90500 ]
Run Code Online (Sandbox Code Playgroud)
我想得到:
output = [ a(1):b(1) a(2):b(2) a(3):b(3) a(4):b(4) ]
Run Code Online (Sandbox Code Playgroud)
(或者[ a(1):b(1); a(2):b(2); a(3):b(3); a(4):b(4) ]
,我不在乎)
我不知道如何在不使用循环的情况下执行此操作,但我知道它应该是一种方式.
任何的想法?
提前致谢
当我遇到bash的-参数时,我试图导出路径中带有破折号的bash环境变量。我注意到,这似乎与in中签出某个版本的单个文件的方式类似git
。
两者之间是否有任何关系,它们是同一事物,它们是否具有相同的目的?
前段时间我的外部硬盘崩溃了(完全停止工作),我不得不从另一个硬盘中恢复文件,这些文件已被删除。一段时间后,我意识到一些已恢复的图片已损坏。
我无法通过任何图像程序打开这些图像。当我在 .jpgs 上运行“文件”命令时,我得到:
DSCN9129.JPG: JPEG image data, EXIF standard 2.2
DSCN9130.JPG: JPEG image data, EXIF standard 2.2
DSCN9131.JPG: JPEG image data, EXIF standard 2.2
DSCN9132.JPG: DOS executable (COM)
DSCN9133.JPG: data
DSCN9134.JPG: data
DSCN9135.JPG: JPEG image data, EXIF standard 2.2
DSCN9136.JPG: data
DSCN9137.JPG: data
DSCN9138.JPG: data
DSCN9139.JPG: data
DSCN9140.JPG: 8086 relocatable (Microsoft)
DSCN9141.JPG: data
DSCN9142.JPG: data
Run Code Online (Sandbox Code Playgroud)
在那里,我们可以注意到有些图像还可以,有些无法识别,有些则被错误地解释为其他类型的文件。
我正在上传 2 个示例图像:
http://ul.to/u7emvxp8 ---> DSCN9133.JPG(已损坏)
http://ul.to/zegf7q8a ---> DSCN9131.JPG(未损坏)
我使用这个 python 代码来查看文件中的内容:
import sys, os
with open("./images/DSCN9133.JPG", "rb") as f:
stri=""
i=0
byte …
Run Code Online (Sandbox Code Playgroud) matlab ×3
c ×2
random ×2
vector ×2
arguments ×1
arrays ×1
bash ×1
corrupt ×1
distribution ×1
file-format ×1
git ×1
jpeg ×1
performance ×1
unique ×1