我试图解决这两个问题,任何意见都会受到赞赏。
我的解决方案有效,但输出对象不断重复"示例"在数组上的对象之前。
(1)Latin Hypercube Sampling 编写一个从真实空间D产生N个伪随机样本的函数。该函数应该作为参数: - 要生产的样品数量(N) - 每个维度的界限(dmin,dmax) 该函数应返回表示整组随机数元组的对象数组。例如: 结果= [{" d1":1," d2":3},{" d1":2," d2":1} ,{" d1":3," d2":2}];
// Create the function.
const hypercube = (N, dmin, dmax) => {
const samp = [];
for(let i = 0; i <= N; i ++){
const min = Math.ceil(dmin),
max = Math.floor(dmax);
// let build = new latin(min, max);
// samp.push(build);
samp.push(new Sample(min, max));
}
console.log(samp);
};
// Run the function.
hypercube(2, 1, 6);
// This is the constructor function.
function Sample (min, max) {
this.d1 = Math.floor(Math.random() * (max - min + 1) + min);
this.d2 = Math.floor(Math.random() * (max - min + 1) + min);
}
这是第二部分,我的解决方案类似于第一部分。我创建了一个字母数组,并从该数组中随机选择一个。
(2)组合学 扩展函数以允许组合数据类型,即来自固定的无序集合的值。组合数据类型应表示为字符串。该函数应该作为参数: - 要生产的样品数量(N) - 每个维度的配置: - - 对于实数,这应该是界限(dmin,dmax) - - 对于组合值,这应该是一组可能的值([...]) 例如,函数可能会产生三维结果:前两个是范围[1 - 3]中的实数,第三个是组合集[&#34; A&#34;,&#34; B&#34 ;,&#34; C&#34;]。 和以前一样:函数应该返回一个对象数组。例如:
// Create the function.
const hypercube = (N, dmin, dmax) => {
const samp = [];
for(let i = 0; i <= N; i ++){
const min = Math.ceil(dmin),
max = Math.floor(dmax);
// let build = new latin(min, max);
// samp.push(build);
samp.push(new Sample(min, max));
}
console.log(samp);
};
// Run the function.
hypercube(2, 1, 6);
// This is the constructor function.
function Sample (min, max) {
this.d1 = Math.floor(Math.random() * (max - min + 1) + min);
this.d2 = Math.floor(Math.random() * (max - min + 1) + min);
}
&#13;
result = [{&#34; d1&#34;:1,&#34; d2&#34;:3,&#34; d3&#34;:&#34; B&#34; },{&#34; d1&#34;:2,&#34; d2&#34;:1,&#34; d3&#34;:&#34; A&#34; },{&#34; d1&#34;:3,&#34; d2&#34;:2,&#34; d3&#34;:&#34; C&#34; }];
我很感激任何意见。
谢谢。