小编060*_*002的帖子

Python多个列表推导包含一个列表中的元组范围

我需要这样的清单:

[(16,2), (14,3), (15,3), (16,3), (18,3), (19,3), (12,4), (13,4), (14,4)]
Run Code Online (Sandbox Code Playgroud)

但是,要长得多。此列表中确实有一些非常大的范围模式,但也有不规则之处。因此,写下所有元组是不可行的,但是我也无法创建简单的listcomp。

我想使用:

[(16,2), (x,3) for x in range(14,19), (x,4) for x in range(12,14)] 
Run Code Online (Sandbox Code Playgroud)

但是根据文档,这[x, y for ...]是不允许的,并且我的示例被解释为由2个带括号的元组组成的无括号元组,而不是后跟列表理解的元组。

有什么办法吗?

python tuples list-comprehension list

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

我的Java代码无法运行,为什么?(只有几行)

我不得不为一个课程项目写这个.编译时我没有遇到任何错误,但是当我尝试执行它时程序不会运行.

我们必须编写一个程序myRandomWalkers.java,它接受两个命令行参数N和T.在每个T独立实验中,模拟N步的随机游走并计算平方距离.输出均方距离(T平方距离的平均值).

我写了以下内容:

public class myRandomWalkers {

    public static void main(String[] args) {

        int n= Integer.parseInt(args[0]);
        int t= Integer.parseInt(args[1]);
        int x= 0; // starting x position
        int y= 0; // starting y position
        int sum = 0; // for calculating mean square distance
        double r;

        int count = 0;
        while (count <= t)
        {
            for (int i=0; i<n; i++) {

                r= Math.random();
                if (r<=0.25) x++;
                else if(r<=0.50) x--;
                else if(r<=0.75) y++;
                else if(r<=1.0) y--;        

                int z = ((x*x) + (y*y)); …
Run Code Online (Sandbox Code Playgroud)

java

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

卡在无限循环中

我试图用c ++简单地猜测我的数字游戏,但计算机需要猜测我的数字.但问题是我陷入了这种无限循环.我只是一个初学者,所以这是一个非常基本的程序.

这是我的代码:

int secretNumber = rand() %100 + 1; // random number between 1-100
int tries=0;
int input;

cout <<"typ your number\n";
cin >> input;

do
{
    cout <<secretNumber <<endl;
    ++tries;

    if (secretNumber > input)
    {
        cout <<"To high i guess?\n";
    }
    else if (secretNumber < input)
    {
        cout <<"To low I guess?\n";
    }
    else 
    {
        cout <<"Yes, i got it in " <<tries <<" tries!";
    }
}while (input != secretNumber);

return 0;

}
Run Code Online (Sandbox Code Playgroud)

c++ infinite-loop do-while

0
推荐指数
1
解决办法
4495
查看次数

理论上对数复杂但实际上是线性的

看看下面的代码来找到X ^ y.

/* Find exponent in logarithmic complexity */
int findPower(int base, exponent){
     if( 1 == exponent ) return base;
     return (findPower(base, exponent/2)*findPower(base, exponent-exponent/2));
}

int main(int argc, char *argv[]){
    if(argc < 3) {
        printf("Usage :: logpow baseNumber power\n");
        return -1;
    }
    printf("%s ^ %s  =  %d\n", argv[1], argv[2], findPow( atoi(argv[1]),
                                                          atoi(argv[2])) );
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

分析表明,这具有theta(log(n))的复杂性.但是我用它来测量时间,这是结果

Run 1: (calculating 1^500_million)
user-lm Programming # time ./a.out 1 500000000
1 ^ 500000000  =  1

real    0m5.009s
user    0m5.000s
sys 0m0.000s …
Run Code Online (Sandbox Code Playgroud)

theory algorithm performance big-o time-complexity

-1
推荐指数
1
解决办法
203
查看次数