umt 1.1.7 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/module/Advance/index.d.ts +1 -0
- package/module/Advance/rangeAdvance.d.ts +9 -0
- package/module/Array/checkFlagAlignment.d.ts +3 -0
- package/module/Array/checkFlagAlignment.js +26 -0
- package/module/Array/checkFlagAlignment.js.map +1 -0
- package/module/Date/index.d.ts +2 -3
- package/module/Math/calculator/convertCurrency.js +4 -4
- package/module/Math/calculator/convertCurrency.js.map +1 -1
- package/module/Math/calculator/core.js +66 -40
- package/module/Math/calculator/core.js.map +1 -1
- package/module/Math/calculator/index.d.ts +5 -6
- package/module/Math/calculator/literalExpression.d.ts +3 -2
- package/module/Math/calculator/literalExpression.js +42 -36
- package/module/Math/calculator/literalExpression.js.map +1 -1
- package/module/Math/gcd.d.ts +1 -1
- package/module/Math/gcd.js +7 -8
- package/module/Math/gcd.js.map +1 -1
- package/module/Math/index.d.ts +39 -40
- package/module/Math/isDouble.d.ts +1 -0
- package/module/Math/isDouble.js +3 -4
- package/module/Math/isDouble.js.map +1 -1
- package/module/Math/mathConverter.d.ts +7 -3
- package/module/Math/mathConverter.js +28 -27
- package/module/Math/mathConverter.js.map +1 -1
- package/module/Math/mathSeparator.d.ts +6 -1
- package/module/Math/mathSeparator.js +20 -6
- package/module/Math/mathSeparator.js.map +1 -1
- package/module/Math/nCr.d.ts +4 -3
- package/module/Math/nCr.js +12 -12
- package/module/Math/nCr.js.map +1 -1
- package/module/Math/nHr.d.ts +4 -3
- package/module/Math/nHr.js +8 -10
- package/module/Math/nHr.js.map +1 -1
- package/module/Math/nPr.d.ts +4 -3
- package/module/Math/nPr.js +10 -30
- package/module/Math/nPr.js.map +1 -1
- package/module/Simple/Date/index.d.ts +1 -2
- package/module/Simple/Tool/dayOfWeekSimple.d.ts +2 -2
- package/module/Simple/Tool/index.d.ts +3 -4
- package/module/Simple/index.d.ts +4 -5
- package/module/Tool/dayOfWeek.d.ts +1 -1
- package/module/Tool/index.d.ts +10 -11
- package/module/index.d.ts +1 -0
- package/module/tests/Advance/rangeAdvance.test.d.ts +1 -0
- package/module/tests/Array/checkFlagAlignment.test.d.ts +1 -0
- package/module/tests/Array/checkFlagAlignment.test.js +130 -0
- package/module/tests/Array/checkFlagAlignment.test.js.map +1 -0
- package/module/tests/Math/calculator/calculator.test.js +60 -13
- package/module/tests/Math/calculator/calculator.test.js.map +1 -1
- package/module/tests/Math/calculator/convertCurrency.test.js +21 -13
- package/module/tests/Math/calculator/convertCurrency.test.js.map +1 -1
- package/module/tests/Math/calculator/literalExpression.test.js +41 -7
- package/module/tests/Math/calculator/literalExpression.test.js.map +1 -1
- package/module/tests/Math/gcd.test.js +22 -11
- package/module/tests/Math/gcd.test.js.map +1 -1
- package/module/tests/Math/lcm.test.js +17 -6
- package/module/tests/Math/lcm.test.js.map +1 -1
- package/module/tests/Math/mathConverter.test.js +23 -4
- package/module/tests/Math/mathConverter.test.js.map +1 -1
- package/module/tests/Math/mathSeparator.test.js +33 -7
- package/module/tests/Math/mathSeparator.test.js.map +1 -1
- package/module/tests/Math/nCr.test.js +16 -5
- package/module/tests/Math/nCr.test.js.map +1 -1
- package/module/tests/Math/nHr.test.js +17 -4
- package/module/tests/Math/nHr.test.js.map +1 -1
- package/module/tests/Math/nPr.test.js +16 -9
- package/module/tests/Math/nPr.test.js.map +1 -1
- package/module/tests/Tool/deleteSpace.test.d.ts +1 -0
- package/module/tests/Tool/deleteSpace.test.js +34 -0
- package/module/tests/Tool/deleteSpace.test.js.map +1 -0
- package/module/tsconfig.tsbuildinfo +1 -1
- package/package.json +18 -13
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./rangeAdvance";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 条件式を満たす数値の配列を返す
|
|
3
|
+
* @param start 開始数値
|
|
4
|
+
* @param end 終了数値
|
|
5
|
+
* @param conditionalExpression 条件式
|
|
6
|
+
* @returns
|
|
7
|
+
*/
|
|
8
|
+
declare function rangeAdvance(start: number, end?: number, conditionalExpression?: (number_: number) => boolean): number[];
|
|
9
|
+
export { rangeAdvance };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export const checkFlagAlignment = (matrix) => {
|
|
2
|
+
const rows = matrix.length;
|
|
3
|
+
const cols = matrix[0].length;
|
|
4
|
+
// 横方向のチェック
|
|
5
|
+
for (let index = 0; index < rows; index++) {
|
|
6
|
+
if (matrix[index].every((cell) => cell.flag)) {
|
|
7
|
+
return true;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
// 縦方向のチェック
|
|
11
|
+
for (let index = 0; index < cols; index++) {
|
|
12
|
+
if (matrix.every((row) => row[index].flag)) {
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
// 斜め方向のチェック (左上から右下へ)
|
|
17
|
+
if (matrix.every((row, index) => row[index].flag)) {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
// 斜め方向のチェック (左下から右上へ)
|
|
21
|
+
if (matrix.every((row, index) => row[cols - index - 1].flag)) {
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
return false;
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=checkFlagAlignment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkFlagAlignment.js","sourceRoot":"","sources":["../../src/Array/checkFlagAlignment.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,MAAa,EACJ,EAAE;IACX,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAE9B,WAAW;IACX,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE;QACzC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC5C,OAAO,IAAI,CAAC;SACb;KACF;IAED,WAAW;IACX,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE;QACzC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE;YAC1C,OAAO,IAAI,CAAC;SACb;KACF;IAED,sBAAsB;IACtB,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE;QACjD,OAAO,IAAI,CAAC;KACb;IAED,sBAAsB;IACtB,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;QAC5D,OAAO,IAAI,CAAC;KACb;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
|
package/module/Date/index.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export { now, newDateInt, newDateStr };
|
|
1
|
+
export * from "./new";
|
|
2
|
+
export * from "./now";
|
|
@@ -8,15 +8,15 @@ import { multiplication } from "../multiplication";
|
|
|
8
8
|
* @returns 換算後の通貨額を文字列で返す。換算できない場合は元の文字列を返す。
|
|
9
9
|
*/
|
|
10
10
|
export const convertCurrency = (inputString, conversionRates) => {
|
|
11
|
-
|
|
12
|
-
if (!conversionRates)
|
|
11
|
+
if (!conversionRates) {
|
|
13
12
|
return inputString;
|
|
13
|
+
}
|
|
14
14
|
for (const currencySymbol in conversionRates) {
|
|
15
15
|
if (inputString.startsWith(currencySymbol)) {
|
|
16
|
-
const
|
|
16
|
+
const amountString = inputString.slice(currencySymbol.length);
|
|
17
17
|
const rate = conversionRates[currencySymbol];
|
|
18
18
|
if (isNumber(rate)) {
|
|
19
|
-
const amount = Number(
|
|
19
|
+
const amount = Number(amountString);
|
|
20
20
|
const convertedAmount = multiplication(amount, Number(rate));
|
|
21
21
|
return Number.isNaN(convertedAmount)
|
|
22
22
|
? inputString
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertCurrency.js","sourceRoot":"","sources":["../../../src/Math/calculator/convertCurrency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAK7B,WAAmB,EACnB,eAAmB,EACnB,EAAE;IACF,
|
|
1
|
+
{"version":3,"file":"convertCurrency.js","sourceRoot":"","sources":["../../../src/Math/calculator/convertCurrency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAK7B,WAAmB,EACnB,eAAmB,EACnB,EAAE;IACF,IAAI,CAAC,eAAe,EAAE;QACpB,OAAO,WAAW,CAAC;KACpB;IAED,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE;QAC5C,IAAI,WAAW,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;YAC1C,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;YAC9D,MAAM,IAAI,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;YAE7C,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;gBAClB,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;gBACpC,MAAM,eAAe,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC7D,OAAO,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC;oBAClC,CAAC,CAAC,WAAW;oBACb,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;aAC7B;SACF;KACF;IACD,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC"}
|
|
@@ -2,6 +2,7 @@ import { addition } from "../../Math/addition";
|
|
|
2
2
|
import { division } from "../../Math/division";
|
|
3
3
|
import { multiplication } from "../../Math/multiplication";
|
|
4
4
|
import { subtract } from "../../Math/subtract";
|
|
5
|
+
import { isNumber } from "../isNumber";
|
|
5
6
|
import { convertCurrency } from "./convertCurrency";
|
|
6
7
|
export const calculatorCore = (expression, currencyExchange) => {
|
|
7
8
|
let sanitizedExpression = expression;
|
|
@@ -15,15 +16,36 @@ export const calculatorCore = (expression, currencyExchange) => {
|
|
|
15
16
|
}
|
|
16
17
|
// 括弧の処理
|
|
17
18
|
if (containsParentheses(sanitizedExpression)) {
|
|
18
|
-
|
|
19
|
+
const temporary = resolveParentheses(sanitizedExpression);
|
|
20
|
+
if (temporary === NaN.toString()) {
|
|
21
|
+
return sanitizedExpression;
|
|
22
|
+
}
|
|
23
|
+
sanitizedExpression = temporary;
|
|
19
24
|
}
|
|
20
|
-
//
|
|
21
|
-
else if (
|
|
22
|
-
|
|
25
|
+
// 乗算、べき乗の処理
|
|
26
|
+
else if (containsMulExp(sanitizedExpression)) {
|
|
27
|
+
const temporary = resolveMulExp(sanitizedExpression);
|
|
28
|
+
if (temporary === NaN.toString()) {
|
|
29
|
+
return sanitizedExpression;
|
|
30
|
+
}
|
|
31
|
+
sanitizedExpression = temporary;
|
|
32
|
+
}
|
|
33
|
+
// 除算の処理
|
|
34
|
+
else if (containsDiv(sanitizedExpression)) {
|
|
35
|
+
const temporary = resolveDiv(sanitizedExpression);
|
|
36
|
+
if (temporary === NaN.toString()) {
|
|
37
|
+
return sanitizedExpression;
|
|
38
|
+
}
|
|
39
|
+
sanitizedExpression = temporary;
|
|
23
40
|
}
|
|
24
41
|
// 加算と減算の処理
|
|
25
|
-
else if (containsAddSub(sanitizedExpression)
|
|
26
|
-
|
|
42
|
+
else if (containsAddSub(sanitizedExpression) &&
|
|
43
|
+
!isNumber(sanitizedExpression)) {
|
|
44
|
+
const temporary = resolveAddSub(sanitizedExpression);
|
|
45
|
+
if (temporary === NaN.toString()) {
|
|
46
|
+
return sanitizedExpression;
|
|
47
|
+
}
|
|
48
|
+
sanitizedExpression = temporary;
|
|
27
49
|
}
|
|
28
50
|
// もう計算するものがなければ結果を返す
|
|
29
51
|
else {
|
|
@@ -33,17 +55,17 @@ export const calculatorCore = (expression, currencyExchange) => {
|
|
|
33
55
|
};
|
|
34
56
|
const sanitizeSigns = (expr) => {
|
|
35
57
|
return expr
|
|
36
|
-
.
|
|
37
|
-
.
|
|
38
|
-
.
|
|
39
|
-
.
|
|
58
|
+
.replaceAll("--", "+")
|
|
59
|
+
.replaceAll("++", "+")
|
|
60
|
+
.replaceAll("+-", "+0-")
|
|
61
|
+
.replaceAll("-+", "+0-");
|
|
40
62
|
};
|
|
41
63
|
const applyCurrencyExchange = (expr, rates) => {
|
|
42
64
|
let returnExpr = expr;
|
|
43
65
|
// 通貨の交換ロジック
|
|
44
|
-
for (const
|
|
45
|
-
if (returnExpr.
|
|
46
|
-
const $ = returnExpr.match(new RegExp(`\\${
|
|
66
|
+
for (const index in rates) {
|
|
67
|
+
if (returnExpr.includes(index)) {
|
|
68
|
+
const $ = returnExpr.match(new RegExp(`\\${index}([0-9]+)`));
|
|
47
69
|
if ($) {
|
|
48
70
|
returnExpr = returnExpr.replace($[0], convertCurrency($[0], rates));
|
|
49
71
|
}
|
|
@@ -52,52 +74,56 @@ const applyCurrencyExchange = (expr, rates) => {
|
|
|
52
74
|
return returnExpr;
|
|
53
75
|
};
|
|
54
76
|
const containsParentheses = (expr) => {
|
|
55
|
-
return expr.
|
|
77
|
+
return expr.includes("(") || expr.includes(")");
|
|
56
78
|
};
|
|
57
79
|
const resolveParentheses = (expr) => {
|
|
58
80
|
// 括弧内の計算ロジック
|
|
59
|
-
const match = expr.match(/\(\d+\.?(\d+)?(
|
|
81
|
+
const match = expr.match(/\(\d+\.?(\d+)?([*+/-])\d+\.?(\d+)?\)/);
|
|
60
82
|
if (match) {
|
|
61
|
-
return expr.replace(match[0], calculatorCore(match[0].
|
|
83
|
+
return expr.replace(match[0], calculatorCore(match[0].replaceAll(/\(|\)/g, "")));
|
|
62
84
|
}
|
|
63
|
-
return
|
|
85
|
+
return NaN.toString();
|
|
64
86
|
};
|
|
65
|
-
const
|
|
66
|
-
return
|
|
67
|
-
expr.indexOf("*") !== -1 ||
|
|
68
|
-
expr.indexOf("/") !== -1);
|
|
87
|
+
const containsMulExp = (expr) => {
|
|
88
|
+
return expr.includes("^") || expr.includes("*");
|
|
69
89
|
};
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
90
|
+
const containsDiv = (expr) => {
|
|
91
|
+
return expr.includes("/");
|
|
92
|
+
};
|
|
93
|
+
const resolveMulExp = (expr) => {
|
|
94
|
+
// 乗算、べき乗の計算ロジック
|
|
95
|
+
const match = expr.match(/(.*?)(\d+\.?(\d+)?([*^])\d+\.?(\d+)?$)/);
|
|
73
96
|
if (match) {
|
|
74
|
-
const operands = match[
|
|
97
|
+
const operands = match[2].split(/([*/^])/);
|
|
75
98
|
const result = operands[1] === "^"
|
|
76
99
|
? Math.pow(Number(operands[0]), Number(operands[2]))
|
|
77
|
-
: operands[
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
100
|
+
: multiplication(Number(operands[0]), Number(operands[2]));
|
|
101
|
+
return `${match[1]}${result}`;
|
|
102
|
+
}
|
|
103
|
+
return NaN.toString();
|
|
104
|
+
};
|
|
105
|
+
const resolveDiv = (expr) => {
|
|
106
|
+
// 除算の計算ロジック
|
|
107
|
+
const match = expr.match(/\d+\.?(\d+)?(\/)\d+\.?(\d+)?/);
|
|
108
|
+
if (match) {
|
|
109
|
+
const operands = match[0].split(/(\/)/);
|
|
110
|
+
const result = division(Number(operands[0]), Number(operands[2]));
|
|
82
111
|
return expr.replace(match[0], String(result));
|
|
83
112
|
}
|
|
84
|
-
return
|
|
113
|
+
return NaN.toString();
|
|
85
114
|
};
|
|
86
115
|
const containsAddSub = (expr) => {
|
|
87
|
-
return expr.
|
|
116
|
+
return expr.includes("+") || expr.includes("-");
|
|
88
117
|
};
|
|
89
118
|
const resolveAddSub = (expr) => {
|
|
90
119
|
// 加算、減算の計算ロジック
|
|
91
|
-
const match = expr.match(
|
|
120
|
+
const match = expr.match(/(-?\d+)\.?(\d+)?(\+|-)(-?\d+)\.?(\d+)?/);
|
|
92
121
|
if (match) {
|
|
93
|
-
const
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
: operands[1] === "-"
|
|
97
|
-
? subtract(Number(operands[0]), Number(operands[2]))
|
|
98
|
-
: 0;
|
|
122
|
+
const result = match[3] === "+"
|
|
123
|
+
? addition(Number(match[1]), Number(match[4]))
|
|
124
|
+
: subtract(Number(match[1]), Number(match[4]));
|
|
99
125
|
return expr.replace(match[0], String(result));
|
|
100
126
|
}
|
|
101
|
-
return
|
|
127
|
+
return NaN.toString();
|
|
102
128
|
};
|
|
103
129
|
//# sourceMappingURL=core.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/Math/calculator/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,UAAkB,EAClB,gBAAoB,EACZ,EAAE;IACV,IAAI,mBAAmB,GAAG,UAAU,CAAC;IAErC,QAAQ;IACR,mBAAmB,GAAG,aAAa,CAAC,mBAAmB,CAAC,CAAC;IAEzD,WAAW;IACX,OAAO,IAAI,EAAE;QACX,OAAO;QACP,IAAI,gBAAgB,EAAE;YACpB,mBAAmB,GAAG,qBAAqB,CACzC,mBAAmB,EACnB,gBAAgB,CACjB,CAAC;SACH;QAED,QAAQ;QACR,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,EAAE;YAC5C,
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/Math/calculator/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export { calculator, calculatorInitialization, calculatorCore, convertCurrency, literalExpression, };
|
|
1
|
+
export * from "./calculator";
|
|
2
|
+
export * from "./calculatorInitialization";
|
|
3
|
+
export * from "./convertCurrency";
|
|
4
|
+
export * from "./core";
|
|
5
|
+
export * from "./literalExpression";
|
|
@@ -2,51 +2,57 @@ import { division } from "../division";
|
|
|
2
2
|
import { gcd } from "../gcd";
|
|
3
3
|
import { calculatorCore } from "./core";
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
* @param
|
|
5
|
+
* 文字式の方程式を計算する
|
|
6
|
+
* @param x 方程式の文字列
|
|
7
|
+
* @returns 計算結果
|
|
7
8
|
*/
|
|
8
9
|
export const literalExpression = (x) => {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
// 方程式の数値と変数部分を格納
|
|
11
|
+
let numericalPart = "";
|
|
12
|
+
let variablePart = [];
|
|
13
|
+
// 等号で分割し、数値と変数部分を識別
|
|
14
|
+
for (const part of x.split("=")) {
|
|
15
|
+
if (/[A-Za-z]+/.test(part)) {
|
|
16
|
+
variablePart = part
|
|
17
|
+
.split(/(\d+[A-Za-z]+)|([^A-Za-z]+)/)
|
|
18
|
+
.filter((n) => n && n !== undefined);
|
|
13
19
|
}
|
|
14
20
|
else {
|
|
15
|
-
|
|
16
|
-
.split(/([0-9]+[a-zA-Z]+)|([^a-zA-Z]+)/)
|
|
17
|
-
.filter((n) => n !== "" && typeof n !== "undefined");
|
|
21
|
+
numericalPart = part;
|
|
18
22
|
}
|
|
19
23
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}
|
|
28
|
-
if (cache[0][1].indexOf("plus") !== 1) {
|
|
29
|
-
cache[0][1] = cache[0][1].replace(/plus/g, "-");
|
|
30
|
-
}
|
|
31
|
-
if (cache[0][1].indexOf("minus") !== 1) {
|
|
32
|
-
cache[0][1] = cache[0][1].replace(/minus/g, "+");
|
|
33
|
-
}
|
|
24
|
+
// 変数部分の計算
|
|
25
|
+
if (variablePart[1]) {
|
|
26
|
+
variablePart[1] = calculatorCore(variablePart[1])
|
|
27
|
+
.replaceAll("+", "plus")
|
|
28
|
+
.replaceAll("-", "minus")
|
|
29
|
+
.replaceAll("plus", "-")
|
|
30
|
+
.replaceAll("minus", "+");
|
|
34
31
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
32
|
+
// 数値部分の計算
|
|
33
|
+
numericalPart = variablePart[1]
|
|
34
|
+
? calculatorCore(`${numericalPart}${variablePart[1]}`)
|
|
35
|
+
: calculatorCore(numericalPart);
|
|
36
|
+
// 変数部分を再分割
|
|
37
|
+
variablePart = variablePart[0]
|
|
38
|
+
.split(/(\d+)|([A-Za-z]+)/)
|
|
39
|
+
.filter((n) => n && n !== undefined);
|
|
40
|
+
// 数値がない場合は計算結果を返す
|
|
41
|
+
if (Number.isNaN(Number(variablePart[0]))) {
|
|
42
|
+
return numericalPart;
|
|
43
43
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
44
|
+
// 最大公約数で簡約
|
|
45
|
+
const commonGcd = gcd(Number(variablePart[0]), Number(numericalPart));
|
|
46
|
+
console.log("====================================");
|
|
47
|
+
console.log(commonGcd, variablePart[0], numericalPart);
|
|
48
|
+
console.log("====================================");
|
|
49
|
+
if (commonGcd !== 1) {
|
|
50
|
+
numericalPart = `${division(Number(numericalPart), commonGcd)}/${division(Number(variablePart[0]), commonGcd)}`;
|
|
51
|
+
if (/(-?)\d+\/1/.test(numericalPart)) {
|
|
52
|
+
return numericalPart.replace(/\/1/, "");
|
|
48
53
|
}
|
|
49
|
-
return
|
|
54
|
+
return numericalPart;
|
|
50
55
|
}
|
|
56
|
+
return numericalPart;
|
|
51
57
|
};
|
|
52
58
|
//# sourceMappingURL=literalExpression.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"literalExpression.js","sourceRoot":"","sources":["../../../src/Math/calculator/literalExpression.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC
|
|
1
|
+
{"version":3,"file":"literalExpression.js","sourceRoot":"","sources":["../../../src/Math/calculator/literalExpression.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAS,EAAU,EAAE;IACrD,iBAAiB;IACjB,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,IAAI,YAAY,GAAa,EAAE,CAAC;IAEhC,oBAAoB;IACpB,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;QAC/B,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC1B,YAAY,GAAG,IAAI;iBAChB,KAAK,CAAC,6BAA6B,CAAC;iBACpC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC;SACxC;aAAM;YACL,aAAa,GAAG,IAAI,CAAC;SACtB;KACF;IAED,UAAU;IACV,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE;QACnB,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;aAC9C,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC;aACvB,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC;aACxB,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC;aACvB,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;KAC7B;IAED,UAAU;IACV,aAAa,GAAG,YAAY,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC,cAAc,CAAC,GAAG,aAAa,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QACtD,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IAElC,WAAW;IACX,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC;SAC3B,KAAK,CAAC,mBAAmB,CAAC;SAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC;IAEvC,kBAAkB;IAClB,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;QACzC,OAAO,aAAa,CAAC;KACtB;IAED,WAAW;IACX,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACpD,IAAI,SAAS,KAAK,CAAC,EAAE;QACnB,aAAa,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,IAAI,QAAQ,CACvE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EACvB,SAAS,CACV,EAAE,CAAC;QACJ,IAAI,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;YACpC,OAAO,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;SACzC;QACD,OAAO,aAAa,CAAC;KACtB;IAED,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC"}
|
package/module/Math/gcd.d.ts
CHANGED
package/module/Math/gcd.js
CHANGED
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
import { valueSwap } from "./valueSwap";
|
|
2
1
|
/**
|
|
3
|
-
*
|
|
2
|
+
* 最大公約数
|
|
4
3
|
* @param {number} x
|
|
5
4
|
* @param {number} y
|
|
6
5
|
* @param {number} ...z
|
|
7
6
|
* @returns number
|
|
8
7
|
*/
|
|
9
8
|
export const gcd = (x, y, ...z) => {
|
|
10
|
-
let copyX = x;
|
|
11
|
-
let copyY = y;
|
|
12
|
-
const copyZ = z;
|
|
9
|
+
let copyX = Math.abs(x);
|
|
10
|
+
let copyY = Math.abs(y);
|
|
11
|
+
const copyZ = z.map((element) => Math.abs(element));
|
|
13
12
|
if (copyX === 0 || copyY === 0) {
|
|
14
13
|
return 0;
|
|
15
14
|
}
|
|
16
|
-
[copyX, copyY] =
|
|
15
|
+
[copyX, copyY] = [Math.max(copyX, copyY), Math.min(copyX, copyY)];
|
|
17
16
|
/* ユークリッドの互除法 */
|
|
18
17
|
let r = copyY % copyX;
|
|
19
18
|
while (r !== 0) {
|
|
@@ -22,8 +21,8 @@ export const gcd = (x, y, ...z) => {
|
|
|
22
21
|
r = copyY % copyX;
|
|
23
22
|
}
|
|
24
23
|
if (copyZ.length > 0) {
|
|
25
|
-
for (
|
|
26
|
-
copyX = gcd(copyX,
|
|
24
|
+
for (const element of copyZ) {
|
|
25
|
+
copyX = gcd(copyX, element);
|
|
27
26
|
}
|
|
28
27
|
}
|
|
29
28
|
return copyX;
|
package/module/Math/gcd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gcd.js","sourceRoot":"","sources":["../../src/Math/gcd.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"gcd.js","sourceRoot":"","sources":["../../src/Math/gcd.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,GAAG,CAAW,EAAE,EAAE;IAC1D,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE;QAC9B,OAAO,CAAC,CAAC;KACV;IACD,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAElE,gBAAgB;IAChB,IAAI,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;IACtB,OAAO,CAAC,KAAK,CAAC,EAAE;QACd,KAAK,GAAG,KAAK,CAAC;QACd,KAAK,GAAG,CAAC,CAAC;QACV,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;KACnB;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACpB,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE;YAC3B,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SAC7B;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
|
package/module/Math/index.d.ts
CHANGED
|
@@ -1,40 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
export { addition, average, calculator, calculatorInitialization, degToRad, deviationValue, division, factorial, factorize, gcd, getDecimalLength, isDouble, isNumber, isPrimeNumber, lcm, mathConverter, mathSeparator, max, min, multiples, multiplication, nCr, nHr, nPr, primeFactorization, quotient, radToDeg, random, reduce, repeatedTrial, roundOf, solveEquation, standardDeviation, subtract, toBinary, toCelsius, toKelvin, isValueNaN, valueSwap, };
|
|
1
|
+
export * from "./addition";
|
|
2
|
+
export * from "./average";
|
|
3
|
+
export * from "./calculator";
|
|
4
|
+
export * from "./calculator/calculatorInitialization";
|
|
5
|
+
export * from "./degToRad";
|
|
6
|
+
export * from "./deviationValue";
|
|
7
|
+
export * from "./division";
|
|
8
|
+
export * from "./factorial";
|
|
9
|
+
export * from "./factorize";
|
|
10
|
+
export * from "./gcd";
|
|
11
|
+
export * from "./getDecimalLength";
|
|
12
|
+
export * from "./isDouble";
|
|
13
|
+
export * from "./isNumber";
|
|
14
|
+
export * from "./isPrimeNumber";
|
|
15
|
+
export * from "./isValueNaN";
|
|
16
|
+
export * from "./lcm";
|
|
17
|
+
export * from "./mathConverter";
|
|
18
|
+
export * from "./mathSeparator";
|
|
19
|
+
export * from "./max";
|
|
20
|
+
export * from "./min";
|
|
21
|
+
export * from "./multiples";
|
|
22
|
+
export * from "./multiplication";
|
|
23
|
+
export * from "./nCr";
|
|
24
|
+
export * from "./nHr";
|
|
25
|
+
export * from "./nPr";
|
|
26
|
+
export * from "./primeFactorization";
|
|
27
|
+
export * from "./quotient";
|
|
28
|
+
export * from "./radToDeg";
|
|
29
|
+
export * from "./random";
|
|
30
|
+
export * from "./reduce";
|
|
31
|
+
export * from "./repeatedTrial";
|
|
32
|
+
export * from "./roundOf";
|
|
33
|
+
export * from "./solveEquation";
|
|
34
|
+
export * from "./standardDeviation";
|
|
35
|
+
export * from "./subtract";
|
|
36
|
+
export * from "./toBinary";
|
|
37
|
+
export * from "./toCelsius";
|
|
38
|
+
export * from "./toKelvin";
|
|
39
|
+
export * from "./valueSwap";
|
package/module/Math/isDouble.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
+
* 小数かどうかを判定する
|
|
2
3
|
* @param {unknown} x
|
|
3
4
|
* @param {boolean} [loose=true] - 文字列も対象にするかどうか
|
|
4
5
|
* @returns boolean
|
|
@@ -6,15 +7,13 @@
|
|
|
6
7
|
function isDouble(x, loose = true) {
|
|
7
8
|
if (loose) {
|
|
8
9
|
return (
|
|
9
|
-
// biome-ignore lint/
|
|
10
|
+
// biome-ignore lint/suspicious/noGlobalIsFinite: <explanation>
|
|
10
11
|
isFinite(x) &&
|
|
11
12
|
!Number.isNaN(x) &&
|
|
12
13
|
Number.isFinite(Number(x)) &&
|
|
13
14
|
!Number.isInteger(Number(x)));
|
|
14
15
|
}
|
|
15
|
-
|
|
16
|
-
return Number.isFinite(x) && !Number.isInteger(x);
|
|
17
|
-
}
|
|
16
|
+
return Number.isFinite(x) && !Number.isInteger(x);
|
|
18
17
|
}
|
|
19
18
|
export { isDouble };
|
|
20
19
|
//# sourceMappingURL=isDouble.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isDouble.js","sourceRoot":"","sources":["../../src/Math/isDouble.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"isDouble.js","sourceRoot":"","sources":["../../src/Math/isDouble.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,SAAS,QAAQ,CAAC,CAAU,EAAE,KAAK,GAAG,IAAI;IACxC,IAAI,KAAK,EAAE;QACT,OAAO;QACL,+DAA+D;QAC/D,QAAQ,CAAC,CAAW,CAAC;YACrB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAC7B,CAAC;KACH;IACD,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* nの2乗を展開します。
|
|
3
|
+
*
|
|
4
|
+
* 1250*1250 => 1500*1000+400*100+200*100+50*50
|
|
5
|
+
*
|
|
6
|
+
* @param {string} equation - 変換する数学的な式
|
|
7
|
+
* @returns {string} 変換後の式
|
|
4
8
|
*/
|
|
5
|
-
export declare const mathConverter: (
|
|
9
|
+
export declare const mathConverter: (equation: string) => string;
|