标题:围棋:如何确定还需几连胜升一段或几连败降一段
取消只看楼主
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
结帖率:93.33%
已结贴  问题点数:20 回复次数:6 
围棋:如何确定还需几连胜升一段或几连败降一段
围棋规则:(5段~9段)(最近20局之内)  
   20战20胜0败胜率100% 升2段  
   20战15胜5败胜率75%以上升1段  
   20战7胜13败胜率35%以下降1段  
   20战3胜17败胜率15%以下降2段  
(1段~4段)(最近20局之内)  
   20战18胜2败胜率90%以上升2段  
   20战14胜6败胜率70%以上升1段  
   20战6胜14败胜率30%以下降1段  
   20战2胜18败胜率10%以下降2段

级(18级~1级)(最近15局之内)  
   15战14胜1败胜率90%以上升2级  
   15战10胜5败胜率65%以上升1级  
   15战4胜11败胜率30%以下降1级  
   15战1胜14败胜率10%以上降2级
最高级别为9段,9段赢棋后不能再升级了。
最低级别为18级,18级输棋后不能再降级了。
1段降级后为1级,1级降级后为2级。。。。。。直到降级到18级为止。


问题:某个棋手想根据自己已经下的棋局输赢情况,想查看自己还需几连胜升一段(级)或几连败降一段(级)。
请问可以如何实现他的愿望。
搜索更多相关主题的帖子: 规则 高级 级别 升级 查看 
2018-07-15 13:22
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:0 
如图


这位5段棋手对局情况是:负胜负
根据他的对局情况电脑是如何判断要:14连胜升级1段/不能升2段,11连败降1段/15连败将2段的呢?
同样的道理,这位13级棋手对局情况是:负胜负胜负胜负
根据他的对局情况电脑是如何判断要:7连胜升级1段/不能升2段,7连败降1段/不能升2段的呢?
如何用编程来完成判断情况呢?
2018-07-16 15:42
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:0 
关键是怎么弄呢?
如何加入到下面的代码里面去呢?
程序代码:
#include <stdio.h>
int main()

 {
    int j = 0;
    printf("请确定棋手的级别:\n");
    printf("1:9段     2:8段    3:7段     4:6段\n");
    printf("5:5段     6:4段    7:3段     8:2段\n");
    printf("9:1段\n");
    printf("10:1级     11:2级    12:3级     13:4级\n");
    printf("14:5级     15:6级    16:7级     17:8级\n");
    printf("18:9级     19:10级   20:11级    21:12级\n");
    printf("22:13级    23:14级   24:15级    25:16级\n");
    printf("26:17级    27:18级\n");
    scanf("%d", &j);
    switch (j)
    {
    case 1:     printf("棋手为:9段\n");           break;
    case 2:        printf("棋手为:8段\n");        break;
    case 3:        printf("棋手为:7段\n");        break;
    case 4:        printf("棋手为:6段\n");        break;
    case 5:        printf("棋手为:5段\n");        break;
    case 6:        printf("棋手为:4段\n");        break;
    case 7:        printf("棋手为:3段\n");        break;
    case 8:        printf("棋手为:2段\n");        break;
    case 9:        printf("棋手为:1段\n");        break;
    case 10:        printf("棋手为:1级\n");        break;
    case 11:        printf("棋手为:2级\n");        break;
    case 12:        printf("棋手为:3级\n");        break;
    case 13:        printf("棋手为:4级\n");        break;
    case 14:        printf("棋手为:5级\n");        break;
    case 15:        printf("棋手为:6级\n");        break;
    case 16:        printf("棋手为:7级\n");        break;
    case 17:        printf("棋手为:8级\n");        break;
    case 18:        printf("棋手为:9级\n");        break;
    case 19:        printf("棋手为:10级\n");        break;
    case 20:        printf("棋手为:11级\n");        break;
    case 21:        printf("棋手为:12级\n");        break;
    case 22:        printf("棋手为:13级\n");        break;
    case 23:        printf("棋手为:14级\n");        break;
    case 24:        printf("棋手为:15级\n");        break;
    case 25:        printf("棋手为:16级\n");        break;
    case 26:        printf("棋手为:17级\n");        break;
    case 27:        printf("棋手为:18级\n");        break;
    }
   return 0;
}


[此贴子已经被作者于2018-7-16 20:31编辑过]

2018-07-16 20:25
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:0 
怎么弄呢??关键是问题表诉得很清楚,是最近15局(13级的),不是当前共下了15局,就是说如果他下了100局,这里只能取最后15局的对局情况,前面85局就不算了,这个情况,怎么用编程来完成。
2018-07-17 14:34
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:0 
回复 8楼 nosnoy
不是这么回事的,在你申请账号时,可以定你自己的棋力,不一定是18级,可以是1段,也可以直接是13级,看你自愿了。还有就是假设某棋手长时间都在某级保此不动,他也一会输,一会赢,只要他最后的15局(或20局)棋,符合上面的情况,那他就不能升级(或降级)。请问该怎么编程呢?
2018-07-17 15:51
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:0 
怎么编程呢??
2018-07-17 16:48
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
得分:0 
你这是 伪代码,不是主函数代码啊。
2018-07-17 21:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-488596-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.116356 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved