mirror of
https://github.com/DanilaFe/abacus
synced 2024-11-17 16:09:32 -08:00
Add a random function.
This commit is contained in:
parent
61475a24d9
commit
d6f4838f05
|
@ -242,6 +242,20 @@ public class StandardPlugin extends Plugin {
|
||||||
return OP_CARET.getFunction().apply(params[0], ((new NaiveNumber(0.5)).promoteTo(params[0].getClass())));
|
return OP_CARET.getFunction().apply(params[0], ((new NaiveNumber(0.5)).promoteTo(params[0].getClass())));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
/**
|
||||||
|
* Gets a random number smaller or equal to the given number's integer value.
|
||||||
|
*/
|
||||||
|
public static final Function FUNCTION_RAND_INT = new Function() {
|
||||||
|
@Override
|
||||||
|
protected boolean matchesParams(NumberInterface[] params) {
|
||||||
|
return params.length == 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected NumberInterface applyInternal(NumberInterface[] params) {
|
||||||
|
return fromInt(params[0].getClass(), (int) Math.round(Math.random() * params[0].floor().intValue()));
|
||||||
|
}
|
||||||
|
};
|
||||||
/**
|
/**
|
||||||
* The implementation for double-based naive numbers.
|
* The implementation for double-based naive numbers.
|
||||||
*/
|
*/
|
||||||
|
@ -572,6 +586,8 @@ public class StandardPlugin extends Plugin {
|
||||||
registerFunction("csc", functionCsc);
|
registerFunction("csc", functionCsc);
|
||||||
registerFunction("cot", functionCot);
|
registerFunction("cot", functionCot);
|
||||||
|
|
||||||
|
registerFunction("random_int", FUNCTION_RAND_INT);
|
||||||
|
|
||||||
registerDocumentation(new Documentation("abs", "Absolute Value", "Finds the distance " +
|
registerDocumentation(new Documentation("abs", "Absolute Value", "Finds the distance " +
|
||||||
"from zero of a number.", "Given a number, this function finds the distance form " +
|
"from zero of a number.", "Given a number, this function finds the distance form " +
|
||||||
"zero of a number, effectively turning negative numbers into positive ones.\n\n" +
|
"zero of a number, effectively turning negative numbers into positive ones.\n\n" +
|
||||||
|
@ -600,6 +616,12 @@ public class StandardPlugin extends Plugin {
|
||||||
"in radians.", "", DocumentationType.FUNCTION));
|
"in radians.", "", DocumentationType.FUNCTION));
|
||||||
registerDocumentation(new Documentation("cot", "Cotangent", "Computes the cotangent of the given angle, " +
|
registerDocumentation(new Documentation("cot", "Cotangent", "Computes the cotangent of the given angle, " +
|
||||||
"in radians.", "", DocumentationType.FUNCTION));
|
"in radians.", "", DocumentationType.FUNCTION));
|
||||||
|
registerDocumentation(new Documentation("random_int", "Random Integer", "Generates a random integer [0, n].",
|
||||||
|
"Generates a pseudorandom number using the standard JVM random mechanism, keeping it less than or " +
|
||||||
|
"equal to the given number.\n\n" +
|
||||||
|
"Example: random_int(5) -> 4\n" +
|
||||||
|
"random_int(5) -> 3\n" +
|
||||||
|
"random_int(5) -> 3\n", DocumentationType.FUNCTION));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue
Block a user