Yura | function randomSplit(total, count) {
console.assert(count > 0, 'Count must be greater than zero.')
console.assert(total > 0, 'Total must be greater than zero.')
const numbers = Array.from({ length: count }, (_, i) => Math.random())
const sum = numbers.reduce((acc, num) => acc + num, 0)
const result = numbers.map((num) => Math.floor((num / sum) * total))
const currentSum = result.reduce((acc, num) => acc + num, 0)
result[0] += total - currentSum
return result
}
randomSplit(Total, Count);
| ready |
Yura_byAkaLexUA | function randomSplit(total, count) {
console.assert(count > 0, 'Count must be greater than zero.')
console.assert(total > 0, 'Total must be greater than zero.')
const numbers = Array.from({ length: count }, (_, i) => Math.random())
const sum = numbers.reduce((acc, num) => acc + num, 0)
const scaleFactor = total / sum;
const result = numbers.map((num) => Math.floor(num * scaleFactor))
const currentSum = result.reduce((acc, num) => acc + num, 0)
result[0] += total - currentSum
return result
}
randomSplit(Total, Count);
| ready |
Yura_byMC_v1 | function randomSplit(total, count) {
console.assert(count > 0, 'Count must be greater than zero.')
console.assert(total > 0, 'Total must be greater than zero.')
let sum = 0;
const numbers = Array.from({ length: count }, (_, i) => {
const val = Math.random();
sum += val;
return val;
});
const scaleFactor = total / sum;
let currentSum = 0;
const result = numbers.map((num) => {
const val = Math.floor(num * scaleFactor);
currentSum += val;
return val;
})
result[0] += total - currentSum;
return result;
}
randomSplit(Total, Count);
| ready |
Yura_byMC_v2 | function randomSplit(total, count) {
console.assert(count > 0, 'Count must be greater than zero.')
console.assert(total > 0, 'Total must be greater than zero.')
let sum = 0;
const numbers = new Array(count);
for (let i = 0; i < count; i++) {
numbers[i] = Math.random();
sum += numbers[i];
}
const scaleFactor = total / sum;
let currentSum = 0;
const result = new Array(count);
for (let i = 0; i < count; i++) {
result[i] = Math.floor(numbers[i] * scaleFactor);
currentSum += result[i];
}
result[0] += total - currentSum;
return result;
}
randomSplit(Total, Count);
| ready |
Yura_byMC_v3 | function randomSplit(total, count) {
console.assert(count > 0, 'Count must be greater than zero.')
console.assert(total > 0, 'Total must be greater than zero.')
let sum = 0;
const numbers = new Array(count);
for (let i = 0; i < count; i++) {
numbers[i] = Math.random();
sum += numbers[i];
}
const scaleFactor = total / sum;
let currentSum = 0;
const result = new Array(count);
numbers.forEach((num, ind) => {
result[ind] = Math.floor(num * scaleFactor);
currentSum += result[ind];
});
result[0] += total - currentSum;
return result;
}
randomSplit(Total, Count);
| ready |
AkaLexUA_v2 | function randomSplit(S, N) {
if (N <= 0) {
throw new Error("Count must be greater than zero.");
}
if (S <= 0) {
throw new Error("Total must be greater than zero.");
}
const randoms = Array.from({ length: N }, () => Math.random());
const randomSum = randoms.reduce((sum, val) => sum + val, 0);
const scaleFactor = S / randomSum;
let result = randoms.map(r => Math.floor(r * scaleFactor));
const currentSum = result.reduce((sum, val) => sum + val, 0);
result[0] += S - currentSum;
return result;
}
randomSplit(Total, Count);
| ready |
AkaLexUA_v3_Manual | function randomSplit(S, N) {
if (N <= 0) {
throw new Error("Count must be greater than zero.");
}
if (S <= 0) {
throw new Error("Total must be greater than zero.");
}
let randoms = new Array(N);
for (let i = 0; i < N; i++) {
randoms[i] = Math.random();
}
const randomSum = randoms.reduce((sum, val) => sum + val, 0);
const scaleFactor = S / randomSum;
let result = new Array(N);
for (let i = 0; i < N; i++) {
result[i] = Math.floor(randoms[i] * scaleFactor);
}
const currentSum = result.reduce((sum, val) => sum + val, 0);
result[0] += S - currentSum;
return result;
}
randomSplit(Total, Count);
| ready |