Skip to content

Commit ccc1a78

Browse files
committed
✨ 增加逻辑节点:随机整数、随机小数、泊松分布
1 parent d6cd96a commit ccc1a78

File tree

3 files changed

+33
-1
lines changed

3 files changed

+33
-1
lines changed

src/core/service/autoComputeEngine/functions/mathLogic.tsx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { NumberFunctions } from "../../../algorithm/numberFunctions";
2+
import { Random } from "../../../algorithm/random";
23

34
/**
45
* 存放和数学逻辑有关的函数
@@ -146,6 +147,19 @@ export namespace MathFunctions {
146147
export function random(_: number[]): number[] {
147148
return [Math.random()];
148149
}
150+
export function randomInt(numbers: number[]): number[] {
151+
return [Random.randomInt(numbers[0], numbers[1])];
152+
}
153+
export function randomFloat(numbers: number[]): number[] {
154+
return [Random.randomFloat(numbers[0], numbers[1])];
155+
}
156+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
157+
export function randomBoolean(_: number[]): number[] {
158+
return [Random.randomBoolean() ? 1 : 0];
159+
}
160+
export function randomPoisson(numbers: number[]): number[] {
161+
return [Random.poissonRandom(numbers[0])];
162+
}
149163
export function round(numbers: number[]): number[] {
150164
return numbers.map((n) => Math.round(n));
151165
}

src/core/service/autoComputeEngine/logicNodeNameEnum.tsx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,14 @@ export enum LogicNodeNameEnum {
2222
POWER = "#POW#",
2323
LOG = "#LOG#",
2424
ABS = "#ABS#",
25+
// 概率论
2526
RANDOM = "#RANDOM#",
27+
RANDOM_INT = "#RANDOM_INT#",
28+
RANDOM_FLOAT = "#RANDOM_FLOAT#",
29+
RANDOM_ITEM = "#RANDOM_ITEM#",
30+
RANDOM_ITEMS = "#RANDOM_ITEMS#",
31+
RANDOM_POISSON = "#RANDOM_POISSON#",
32+
// 数组
2633
// 数学一元函数
2734
SIN = "#SIN#",
2835
COS = "#COS#",
@@ -129,6 +136,12 @@ export const LogicNodeNameToRenderNameMap: {
129136
[LogicNodeNameEnum.MODE]: "众数",
130137
[LogicNodeNameEnum.VARIANCE]: "方差",
131138
[LogicNodeNameEnum.STANDARD_DEVIATION]: "标准差",
139+
[LogicNodeNameEnum.RANDOM_FLOAT]: "随机浮点数",
140+
[LogicNodeNameEnum.RANDOM_INT]: "随机整数",
141+
[LogicNodeNameEnum.RANDOM_ITEM]: "随机选项",
142+
[LogicNodeNameEnum.RANDOM_ITEMS]: "随机选项组",
143+
[LogicNodeNameEnum.RANDOM_POISSON]: "泊松分布",
144+
132145
[LogicNodeNameEnum.RGB]: "rgb",
133146
[LogicNodeNameEnum.RGBA]: "rgba",
134147
[LogicNodeNameEnum.GET_LOCATION]: "获取节点位置",

src/core/service/autoComputeEngine/mainTick.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,6 @@ const MapNameFunction: StringFunctionMap = {
104104
[LogicNodeNameEnum.EQ]: funcTypeTrans(CompareFunctions.isSame),
105105
[LogicNodeNameEnum.NEQ]: funcTypeTrans(CompareFunctions.isDistinct),
106106
// 概率论与统计
107-
[LogicNodeNameEnum.RANDOM]: funcTypeTrans(MathFunctions.random),
108107
[LogicNodeNameEnum.COUNT]: funcTypeTrans(MathFunctions.count),
109108
[LogicNodeNameEnum.AVE]: funcTypeTrans(MathFunctions.average),
110109
[LogicNodeNameEnum.MEDIAN]: funcTypeTrans(MathFunctions.median),
@@ -113,6 +112,12 @@ const MapNameFunction: StringFunctionMap = {
113112
[LogicNodeNameEnum.STANDARD_DEVIATION]: funcTypeTrans(
114113
MathFunctions.standardDeviation,
115114
),
115+
[LogicNodeNameEnum.RANDOM]: funcTypeTrans(MathFunctions.random),
116+
[LogicNodeNameEnum.RANDOM_INT]: funcTypeTrans(MathFunctions.randomInt),
117+
[LogicNodeNameEnum.RANDOM_FLOAT]: funcTypeTrans(MathFunctions.randomFloat),
118+
[LogicNodeNameEnum.RANDOM_POISSON]: funcTypeTrans(
119+
MathFunctions.randomPoisson,
120+
),
116121
// 逻辑门
117122
[LogicNodeNameEnum.AND]: funcTypeTrans(MathFunctions.and),
118123
[LogicNodeNameEnum.OR]: funcTypeTrans(MathFunctions.or),

0 commit comments

Comments
 (0)