【学习任务】酒鬼漫步
我要参与
【学习任务】酒鬼漫步
学习任务 1.4k
等13人参与
来源: 第19周 / Python全能工程师

在一片空旷的平地上,有一个酒鬼,他就是小慕,酒鬼小慕最初停留在原点的位置,每走一步时,方向是不确定的,在经过一定时间之后,我们希望计算出酒鬼小慕与原点的距离。
假设酒鬼小慕走了2000步(每步0.5米),向前走一步记为1,向后走一步记为-1,当计算距原点的距离时,就是将所有的步数进行累计求和。
思路提示:
(1)使用random模块的randint()函数来随机生成2000个0,1的值,利用np.where()函数使0变成-1,np.where(condition, x, y)满足条件,输出x,否则输出y
(2)使用cumsum()函数步数累计和,显示酒鬼小慕每一步距原点的距离
(3)找出酒鬼小慕离原点正向最远、反向最远距离
(4)当酒鬼小慕距原点的距离大于或等于15米时,总共走了多少步?如果没有走到15米,输出"酒鬼小慕最远也没走到15米"

去发布

登录后即可发布作业,立即

我的作业

全部作业 98

慕运维8597106
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <signal.h>
#include <unistd.h>
#include <wait.h>

int main(void)
{
    pid_t cpid1,cpid2;
    cpid1 = fork();
    if(cpid1 == -1)
    {
        perror("[ERROR] fork");
        exit(EXIT_FAILURE);
    }
    else if(cpid1 == 0)
    {
        raise(SIGSTOP);
    }
    else if(cpid1 > 0)
    {// 主进程
        cpid2 = fork();
        if(cpid2 == -1)
        {
            perror("[ERROR] fork");
            exit(EXIT_FAILURE);
        }else if(cpid2 == 0)
        {
            pause();
        } else if(cpid2 > 0)
        {// 主进程
            sleep(3);
            kill(cpid1,SIGKILL);
            printf("Father killed Child: %d\n",cpid1);
            kill(cpid2,SIGKILL);
            printf("Father killed Child: %d\n",cpid2);
            waitpid(cpid1,NULL,0);
            waitpid(cpid2,NULL,0);
        }

    }
    return 0;
}

  • 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
  • 41
  • 42
  • 43
  • 44
  • 45
代码块
复制 预览
复制成功!
提交于  2025-04-28 11:51:45
评论 1
讲师点评
评分:100
无__名
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师