我试图在java中使用立方根,Math.pow(n, 1.0/3)但因为它除了双精度,它不会返回确切的答案.例如,对于125,这给出了4.9999999999.有解决办法吗?我知道有一个立方根函数,但我想解决这个问题,所以我可以计算更高的根.
我不想舍入,因为我想知道一个数字是否具有整数根,通过这样做:Math.pow(n, 1.0 / 3) % ((int) Math.pow(n, 1.0 / 3)).
我已经为beta减少定义了以下函数,但我不确定如何考虑自由变量受限的情况.
data Term = Variable Char | Lambda Char Term | Pair Term Term deriving (Show,Eq)
--substition
s[M:x]= if (s=x) then M else s
AB[M:x]= (A[M:x] B [x:M])
Lambda x B[M:x] = Lambda x B
Lambda y P[M:x]= if x=y then Lambda y P else Lambda y P (M:x)
--beta reduction
Reduce [s]= s
Reduce[Lambda x B]M = B[M:x]
Reduce[L1 L2] = (Reduce [L1] Reduce [L2])
Run Code Online (Sandbox Code Playgroud) 代码应该这样做:a)给定一个未排序的整数数组,你的任务是通过应用以下算法对数组进行排序(假设输入不包含重复项):从数组中的第一个元素开始执行以下步骤: - 计算较小元素的数量,以找到正确的位置i. - 如果元素处于正确位置,请移至后续元素. - 否则,将当前元素与位置i中找到的元素交换. - 重复前面的步骤,直到到达最后一个元素.
示例:5 7 3 6 9检查a [0],有一个元素小于它,因此它应与position1处的元素交换.7 5 3 6 9检查新元素a [0].它应该移动到位置3. 6 5 3 7 9检查新元素a [0].它应该移动到位置2. 3 5 6 7 9检查新元素a [0].它处于正确的位置,所以我们移动到后续元素a [1].
public class Assignment1_T11_25_2729_Sara_Aly {
private int[] a;
private int max;
private int n;
int position=0;
public Assignment1_T11_25_2729_Sara_Aly (int max){
a= new int[max];
}
public void insert(int x){
a[n]=x;
n++;
}
public void sort(){
int out=0, smaller=0;
while(out<n){
for(int in=out+1;in<n;n++){
if(a[in]<a[out])
smaller++;
}
if (smaller==0){
out++;
}
else …Run Code Online (Sandbox Code Playgroud)