小编myr*_*dio的帖子

如何在范围内生成随机整数

这是以前发布的问题的后续内容:

如何在C中生成随机数?

我希望能够在特定范围内生成一个随机数,例如1到6,以模仿骰子的边.

我该怎么做呢?

c random

103
推荐指数
7
解决办法
30万
查看次数

Android Studio访客未在7秒内上线

我收到一条信息消息:当我第一次在Android Studio中启动模拟器时,"访客未在7秒后重启".

我很好奇如何阻止它,因为当它在我的屏幕上大约40秒时,我无法在模拟器中做任何事情.

android-studio

89
推荐指数
4
解决办法
4万
查看次数

C中的随机整数,与整数运算相比,rand()%N有多糟糕?它的缺点是什么?

编辑:我的问题是: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的图:

5个值,5k个样本

10个值10k样本

25个值,250k样本

100个值,1M个样本

我想在代码中没什么可看的,所以我会留下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)

c random distribution

7
推荐指数
1
解决办法
208
查看次数

在MATLAB中高效找到三个char向量的Unique三胞胎

给定三个字符数组,说size(a) = [N,80]size(b) = [N,100];; size(c) = [N,10];

N=5 ab并且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)

performance matlab vector unique

6
推荐指数
1
解决办法
131
查看次数

matlab:评估向量时的错误/精度

我注意到在评估向量时,对我来说是一种不可预测的行为.直接在循环中进行索引似乎真的不同.谁能给我一些帮助呢?我知道可能会解释它是如何进行每个操作的,所以我需要一些关于如何查找它的键

感谢您提前感谢

例:

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)

matlab

4
推荐指数
1
解决办法
121
查看次数

从两个数组元素中成对创建数组,不带循环

简单问题在这里.我有阵列:

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) ],我不在乎)

我不知道如何在不使用循环的情况下执行此操作,但我知道它应该是一种方式.

任何的想法?

提前致谢

arrays matlab vector vectorization

4
推荐指数
2
解决办法
181
查看次数

git checkout-命令与bash的参数-有关系吗?

当我遇到bash-参数时,我试图导出路径中带有破折号的bash环境变量。我注意到,这似乎与in中签出某个版本的单个文件的方式类似git

两者之间是否有任何关系,它们是同一事物,它们是否具有相同的目的?

git bash arguments

1
推荐指数
1
解决办法
47
查看次数

修复损坏的 jpeg

前段时间我的外部硬盘崩溃了(完全停止工作),我不得不从另一个硬盘中恢复文件,这些文件已被删除。一段时间后,我意识到一些已恢复的图片已损坏。

我无法通过任何图像程序打开这些图像。当我在 .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)

jpeg file-format corrupt

0
推荐指数
1
解决办法
4484
查看次数