小编Sar*_*eir的帖子

使用幂方法计算Java中的第n个根

我试图在java中使用立方根,Math.pow(n, 1.0/3)但因为它除了双精度,它不会返回确切的答案.例如,对于125,这给出了4.9999999999.有解决办法吗?我知道有一个立方根函数,但我想解决这个问题,所以我可以计算更高的根.

我不想舍入,因为我想知道一个数字是否具有整数根,通过这样做:Math.pow(n, 1.0 / 3) % ((int) Math.pow(n, 1.0 / 3)).

java math double decimal root

17
推荐指数
2
解决办法
2万
查看次数

使用Haskell进行λ演算的β减少

我已经为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)

haskell lambda-calculus

6
推荐指数
1
解决办法
1926
查看次数

为什么我的排序算法不起作用?

代码应该这样做: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)

java

5
推荐指数
1
解决办法
220
查看次数

标签 统计

java ×2

decimal ×1

double ×1

haskell ×1

lambda-calculus ×1

math ×1

root ×1