当我使用函数图或imagesc绘制图形时,我遇到了这些错误.有任何想法吗?


从灵感这和类似的问题,我想学习如何做在C++ 11周的行为mt19937伪随机数生成器,当两个单独的机器,它与相同的输入种子.
换句话说,我们有以下代码;
std::mt19937 gen{ourSeed};
std::uniform_int_distribution<int> dest{0, 10000};
int randNumber = dist(gen);
Run Code Online (Sandbox Code Playgroud)
如果我们在不同的时间在不同的机器上尝试这个代码,我们每次都会获得相同的randNumber值序列或不同的序列吗?
在任何一种情况下,为什么会这样呢?
还有一个问题:
无论种子如何,这段代码会无限地随机生成数字吗?我的意思是,例如,如果我们在一个运行数月但没有停止的程序中使用这个代码块,那么数字的生成或数字的一致性会有问题吗?
我正在尝试解决Project Euler中的第280个问题,为此我编写了以下模拟;
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <sys/time.h>
/* Directions
1
2 3
4
*/
int grid[5][5] = {
{0, 0, 0, 0, 2},
{0, 0, 0, 0, 2},
{0, 0, 0, 0, 2},
{0, 0, 0, 0, 2},
{0, 0, 0, 0, 2}
};
int InitPos[2] = {2, 2};
int MaxExp = 5000000;
bool Success = false;
int StepCount = 0;
int ExpNumber = 1;
int AntsBag = 0;
void Init();
void CarryFood(int * pos); …Run Code Online (Sandbox Code Playgroud) random performance probability probability-density probability-distribution
在Learn you a Haskell 中,给出了以下示例:
map ($ 3) [(4+), (10*), (^2), sqrt]
[7.0,30.0,9.0,1.7320508075688772]
Run Code Online (Sandbox Code Playgroud)
但是,我不明白为什么会这样。
函数的签名是
Prelude> :info ($)
($) :: (a -> b) -> a -> b
Prelude> :t ($ 3)
($ 3) :: Num a => (a -> b) -> b
Run Code Online (Sandbox Code Playgroud)
然而,->是一个左结合运营商,所以$ :: (a -> b) -> a -> b实际上((($ :: (a-b))-> a)-> b),所以不宜3在($ 3)对应(a->b)的功能是函数的第一个“变量” $?即为什么是($ 3)签名的函数(a -> b) -> b …
我试图用数组乘以数组的每个组件,为此,尝试了以下方法;
1-)
@foo = (1, 2, 3, 5, 6);
vectorScalarMultiply(\@foo);
print @foo, "\n";
sub vectorScalarMultiply
{
my $l_vectorRef = $_[0];
for (my $var = 0; $var < scalar(@temp); $var++) {
$l_vectorRef->[$var] = $l_vectorRef->[$var] * 5;
}
}
Run Code Online (Sandbox Code Playgroud)
1的输出;
12356
2-)
@foo = (1, 2, 3, 5, 6);
vectorScalarMultiply(\@foo);
print @foo, "\n";
sub vectorScalarMultiply
{
my $l_vectorRef = $_[0];
map { $l_vectorRef->[$_] * 5 } { $l_vectorRef->[$_] };
}
Run Code Online (Sandbox Code Playgroud)
2的输出;
123456
3-)
@foo = (1, 2, 3, 5, 6);
@temp = …Run Code Online (Sandbox Code Playgroud) 在功能符号签名all和any,我看到以下内容:
Prelude> :t all
all :: Foldable t => (a -> Bool) -> t a -> Bool
Prelude> :t any
any :: Foldable t => (a -> Bool) -> t a -> Bool
Run Code Online (Sandbox Code Playgroud)
但是,什么... -> t a ->...意思呢?
是不是都t和a一个类型变量?如果是这样,两个类型变量的并置在Haskell中意味着什么?
为了解决我的问题,让我们考虑最基本的功能
function [x, z] = main ()
x = 1;
z = 2;
endfunction
Run Code Online (Sandbox Code Playgroud)
当我执行此函数时,输出为
ans = 1
而我应该得到类似的东西
ans = 1
2
Run Code Online (Sandbox Code Playgroud)
那为什么会这样呢?问题是什么?
我正在关注计算机图形通过OpenGL,第2版由Sumanta Guha第二版,并在第35页,它说,
从提高(原件)square.cpp的第一个顶点
glVertex3f(20.0, 20.0, 0.0)到glVertex3f(20.0, 20.0, 1.5)原因广场-实际上,新的数字是不是正方形更多-被裁剪.相反,如果第二个顶点从升起glVertex3f(80.0, 20.0, 0.0)到glVertex3f(80.0, 20.0, 1.5),那么这个数字是从当第一个顶点提出修剪过,但非常不同.为什么?对称性结果不应该相似吗?提示:OpenGL在将它们三角形化为三角形之后绘制多边形,其中多边形的第一个顶点是扇形的中心.例如,图2.16中的扇形由顶点v0周围的三个三角形组成.
相应代码的样子
glVertex3f(20.0, 20.0, 0.0);
glVertex3f(80.0, 20.0, 0.0);
glVertex3f(80.0, 80.0, 0.0);
glVertex3f(20.0, 80.0, 0.0);
Run Code Online (Sandbox Code Playgroud)
如果我只将第一个顶点的z轴设置为1.5f,我得到这样的输出,
如果我只将第二个顶点的z轴设置为1.5f,我会得到以下输出
在后一种情况下,我可以理解为什么我因为削波而得到那个输出,但是我不明白为什么我在前一种情况下得到那个输出.
在book.realworldhaskell.org,条件评估部分下的类型和函数部分,给出了以下示例:
-- file: ch02/myDrop.hs
myDrop n xs = if n <= 0 || null xs
then xs
else myDrop (n - 1) (tail xs)
Run Code Online (Sandbox Code Playgroud)
我也理解函数的实现,但我的问题是,如何哈斯克尔知道xs是一个列表?
我有两组,A 和 B,都包含一些粒子的位置。我想要做的是以下内容:
For each element a in A,
Calculate the minimum distance between a and the elements of B.
Put these distances in to a list and return.
Run Code Online (Sandbox Code Playgroud)
我知道如何用外观来做到这一点,但我不知道如何使用data.table语法快速地做到这一点 。
haskell ×3
c++ ×2
octave ×2
random ×2
c++11 ×1
data.table ×1
function ×1
gnuplot ×1
macos ×1
opengl ×1
performance ×1
perl ×1
probability ×1
r ×1
return-value ×1
types ×1