首页 > 编程语言 >灵棋占卜的排盘程序 | Code For Python

灵棋占卜的排盘程序 | Code For Python

时间:2024-12-22 10:08:46浏览次数:3  
标签:起卦 Code Python 排盘 占得 事业 此卦者 input chess

灵棋占卜

灵棋经的排盘程序
写一个程序,模拟12个棋子,50%是正面,50%是反面None。
正面参与统计,12个棋子分别有4个“上”,“中”,“下”。执行程序后,统计上中下的个数,返回一个词典。

两种模拟棋子起卦的方法在实现细节和逻辑上有一些差异。以下是它们的主要区别:

  • simulate_chess_1

    • 适用于需要固定位置但正反面随机的场景。
    • 实现简单,逻辑清晰。
  • simulate_chess

    • 适用于需要完全随机化位置和正反面的场景。
    • 代码稍显复杂,但提供了更高的随机性和灵活性。

选择哪种方法取决于你的具体需求。如果你需要固定位置但正反面随机,可以选择 simulate_chess_1。如果你需要完全随机化位置和正反面,可以选择 simulate_chess

用法

# 输入上中下棋子的个数,空格分割。不输入则是自动起卦
main_chess()
# 自动起卦
auto_chess()

获取

源码,还有编译好的exe(只支持自动起卦,但是包含了时间信息)

通过网盘分享的文件:灵棋占卜.exe等2个文件
链接: https://pan.baidu.com/s/17tWhFFMXxqkDoOCn0mB1qw?pwd=ccd5 提取码: ccd5

源码


import random

gua_dict = {
    (1, 1, 1): ('大通卦', '前途光明,占得此卦者事业有上升趋势,宜行正道,则得福。'),
    (1, 1, 2): ('渐泰卦', '伺机发迹,占得此卦者事业顺遂,切记待时而动,则得福。'),
    (1, 1, 3): ('吉庆卦', '富裕昌盛,占得此卦者天生好运,不求自获,多福。'),
    (1, 1, 4): ('富盛卦', '富贵盛极,占得此卦者宜顺天安命,避免物极则反,得福。'),
    (1, 2, 1): ('乐道卦', '怀柔养性,占得此卦者自身力量不足,须求外援或与人共事。'),
    (1, 2, 2): ('惊怖卦', '小有危难,占得此卦者先有磨难,而后成功。'),
    (1, 2, 3): ('年丰卦', '宜田宜桑,占得此卦者所求将在较长时间后实现,需耐心等待。'),
    (1, 2, 4): ('小戒卦', '提防小人,占得此卦者要谨慎提防身边的小人,地位低的人。'),
    (1, 3, 1): ('得志卦', '恰逢其时,占得此卦者事业鼎盛,时机、时运极好。'),
    (1, 3, 2): ('事遂卦', '运与时合,占得此卦者会有转运之机,循天理而行,就能得福。'),
    (1, 3, 3): ('材达卦', '藏用相宜,占得此卦者凡事都能成功,命中有贵人相助。'),
    (1, 3, 4): ('恣游卦', '肆意行乐,占得此卦者宜外出进取,出行顺利,谋事能成'),
    (1, 4, 1): ('忧患卦', '正道不通,占得此卦者遇阻隔而不顺,行为守正,可免祸。'),
    (1, 4, 2): ('慎德卦', '防范贼寇,占得此卦者出门要谨防盗贼、自身要反省后慎行。'),
    (1, 4, 3): ('行令卦', '铲凶除逆,占得此卦者愿意为君王驱使,讨伐奸逆。'),
    (1, 4, 4): ('将损卦', '作战渍败,占得此卦者不能成功克敌,有损兵折将的凶险。'),
    (2, 1, 1): ('神护卦', '神灵附体,占得此卦者会遇到挫折和磨难,但终会化凶为吉。'),
    (2, 1, 2): ('将败卦', '淫乐伤身,占得此卦者警惕自己不为外界女色所诱惑,节欲保寿。'),
    (2, 1, 3): ('理乱卦', '惩奸除恶,占得此卦者是要人暂时不出来竟争,静待合适时机。'),
    (2, 1, 4): ('未还卦', '静以待时,占得此卦者应在荒灾之年顺天应命,静待时机。'),
    (2, 2, 1): ('戒贪卦', '神灵不佑,占得此卦者以神灵不佑,告诫人们勿贪求财宝。'),
    (2, 2, 2): ('安泰卦', '中和正当,占得此卦者安居乐业、顺天受地,自会有福祉财运。'),
    (2, 2, 3): ('昌吉卦', '官运正旺,占得此卦者少年得志,仕途平步青云。'),
    (2, 2, 4): ('亨通卦', '富有财物,占得此卦者财运旺盛,既富且贵,黄金不尽。'),
    (2, 3, 1): ('忧喜卦', '先忧后吉,占得此卦者有小忧而无大患,先忧虑而后吉顺。'),
    (2, 3, 2): ('平安卦', '勿信流言,占得此卦者勿信流言,坦然去做自己想做的事。'),
    (2, 3, 3): ('辟恶卦', '威德凛凛,占得此卦者能得人相助,转变命运,由穷困而通达。'),
    (2, 3, 4): ('大获卦', '趁名逐利,占得此卦者将大获财运,但需要付出勤勉和辛劳。'),
    (2, 4, 1): ('衰微卦', '天佑善人,占得此卦者有升官晋级,节节攀升之兆。'),
    (2, 4, 2): ('避灾卦', '适时潜藏,占得此卦者宜适时潜藏,静守待时不宜进取。'),
    (2, 4, 3): ('发蒙卦', '天降恩泽,占得此卦者仕宣得意,将有恩泽由上而降下。'),
    (2, 4, 4): ('病患卦', '陷入困境,占得此卦者有陷于困境之忧,而得不到救助。'),
    (3, 1, 1): ('明阳卦', '仕宦及时,占得此卦者正当旺运,宜于积极进取。'),
    (3, 1, 2): ('天佑卦', '神女赐福,占得此卦者能得到天的佑护,特别是女性的帮助。'),
    (3, 1, 3): ('尊贵卦', '富贵长寿,占得此卦者能走官运,适宜去求见富贵的人。'),
    (3, 1, 4): ('宜祷卦', '倚仗神力,占得此卦者应祈求上天赏赐福,终小有收获。'),
    (3, 2, 1): ('送货卦', '贵客遗财,占得此卦者有财运,可能会有贵客送来财物。'),
    (3, 2, 2): ('无难卦', '土地平安,占得此卦者目前比较顺利,出入均没有妨碍。'),
    (3, 2, 3): ('恭和卦', '和睦相处,占得此卦者上下关系和顺,合力行事成功。'),
    (3, 2, 4): ('违克卦', '败坏纲纪,占得此卦者上下不和,居上者凶暴不仁,居下者不服从。'),
    (3, 3, 1): ('贞寿卦', '隐士美德,占得此卦者愿退隐以安身,处幽僻之地以养寿。'),
    (3, 3, 2): ('刚长卦', '同心同力,占得此卦者要与意气相投者结为同心,方可成功。'),
    (3, 3, 3): ('强盛卦', '众人辅佐,占得此卦者应积极进取,建功立业必将兴旺。'),
    (3, 3, 4): ('佳丽卦', '女子相助,占得此卦者有好的命运,富贵吉祥,利于女人'),
    (3, 4, 1): ('得禄卦', '兴起旺运,占得此卦者会拥护变革,认为易位是得天助、得良辅。'),
    (3, 4, 2): ('凝滞卦', '进退犹豫,占得此卦者办事遇到阻挠,令人进退两难。'),
    (3, 4, 3): ('恶消卦', '先危后吉,占得此卦者能以正义阳刚之气消除邪恶妖氛。'),
    (3, 4, 4): ('上正卦', '君王圣明,占得此卦者虽国有贤君,但中间仍有蒙蔽上听者。'),
    (4, 1, 1): ('孤贫卦', '遭逢磨难,占得此卦者可能曾经受失亲之苦,或有离别之厄,宜改行。'),
    (4, 1, 2): ('潜龙卦', '必有作为,占得此卦者要如潜龙,暂时避世,待时而行。'),
    (4, 1, 3): ('益友卦', '宜于交往,占得此卦者应多与朋友尤其是居尊位者结交,才利于成事。'),
    (4, 1, 4): ('奸长卦', '契阔离居,占得此卦者不愿困守家乡,但体会到在外的孤独、反复多阻。'),
    (4, 2, 1): ('神助卦', '天神降福,占得此卦者要保持善根不绝,才能否极泰来,转凶为吉。'),
    (4, 2, 2): ('解祀卦', '祭祀祈福,占得此卦者宜赶紧祈祷祭祀,求鬼神护佑,化解阴戾。'),
    (4, 2, 3): ('抑灾卦', '贵人相助,占得此卦者能得到大人物之助,先有危难而后消除祸患。'),
    (4, 2, 4): ('祈享卦', '鬼神护佑,占得此卦者不管遇上什么事,都要祭祀祖先,祈求福佑。'),
    (4, 3, 1): ('从心卦', '百事亨通,占得此卦者宜祭祀于宗庙,而使事业由困境转为顺畅。'),
    (4, 3, 2): ('得失卦', '吉凶难卜,占得此卦者起初并不顺利,而后转为吉祥。'),
    (4, 3, 3): ('救助卦', '无辜被困,占得此卦者事业有上升趋势,宜行正道,则得福'),
    (4, 3, 4): ('大同卦', '安泰通达,占得此卦者正处于事业最上升时,将迅猛发展而至极点。'),
    (4, 4, 1): ('沉医卦', '静以待势,占得此卦者无论干什么都不顺利,处境贫穷困乏。'),
    (4, 4, 2): ('阴长卦', '凶险衰危,占得此卦者多口舌之灾,可能有鬼祸缠身。'),
    (4, 4, 3): ('遁世卦', '困窘至极,占得此卦者会因时运不济而招致灾祸,或无辜受害。'),
    (4, 4, 4): ('众凶卦', '坏到极点,占得此卦者处于穷困已极、无路可走的境地。'),
    (1, 1, 0): ('苦节卦', '无处立足,占得此卦者宜赶紧祈祷鬼神,求得佑护。'),
    (1, 2, 0): ('欢悦卦', '相敬如宾,占得此卦者所行皆和融顺畅,男女关系相处甚佳。'),
    (1, 3, 0): ('方遂卦', '福禄双全,占得此卦者做事顺利发达,百事顺心。'),
    (1, 4, 0): ('鬼伺卦', '忧烦患病,占得此卦者须提防同类之间的矛盾,宜及时医治心病。'),
    (2, 1, 0): ('迟吉卦', '好事晚成,占得此卦者求助他人,要静待佳音,不要操之过急。'),
    (2, 2, 0): ('戒慎卦', '离愁别苦,占得此卦者要谨慎戒惧,小心度日,以免因疏于防范栽跟头。'),
    (2, 3, 0): ('大成卦', '和顺无忧,占得此卦者发财有望富贵在即,命运亨通。'),
    (2, 4, 0): ('扶危卦', '坚守节操,占得此卦者会有小人欺凌之祸,危难临头,恐难扶持。'),
    (3, 1, 0): ('福流卦', '先悔后喜,占得此卦者先忧后吉,得上天佑护,且福瑞惠及子孙后代。'),
    (3, 2, 0): ('晚就卦', '大器晚成,占得此卦者要及时努力,付出辛劳,终将有所收获。'),
    (3, 3, 0): ('事君卦', '君臣相合,占得此卦者行事会一帆风顺,多守旧制,不常变更。'),
    (3, 4, 0): ('必得卦', '凿璞成玉,占得此卦者处于得志的前期,必能如璞玉一样被发现。'),
    (4, 1, 0): ('雪耻卦', '除奸却邪,占得此卦者能通过壮大自己,一扫前面厚重阴霾。'),
    (4, 2, 0): ('戒进卦', '不利进取,占得此卦者要戒惧谨慎,对人对事多加退避,以免惹祸。'),
    (4, 3, 0): ('戒逢卦', '及时自保,占得此卦者要知险而止,要辨明吉凶,保全自身。'),
    (4, 4, 0): ('被绞卦', '办事求速,占得此卦者要急往救助,急人之所急,阻止危情发生。'),
    (0, 1, 1): ('敬慎卦', '慎始防微,占得此卦者要防微杜渐,无论大小事,开始时就要谨慎自律。'),
    (0, 1, 2): ('帝道卦', '功德无边,占得此卦者要立志而后实现其志愿,前程无限,功德浩大。'),
    (0, 1, 3): ('不定卦', '狐疑不决,占得此卦者暂时宜无所作为,以免硬闯招来危险。'),
    (0, 1, 4): ('邪佞卦', '奸佞得志,占得此卦者要受小人之气,若为良善之辈,则会为奸逆迫害。'),
    (0, 2, 1): ('慎悔卦', '颠倒错位,占得此卦者要谨慎保守,轻易打破制度会惹来灾祸。'),
    (0, 2, 2): ('宜初卦', '深思远虑,占得此卦者要有远见,及早发现事物的问题,并及时处理。'),
    (0, 2, 3): ('福会卦', '敬天慎事,占得此卦者要谨慎从事,相信事业终会有所成就。'),
    (0, 2, 4): ('阴贼卦', '危及后代,占得此卦者会受伤害,但于本人性命无忧,于后代不利。'),
    (0, 3, 1): ('福利卦', '大吉大利,占得此卦者可交好运,加上自身努力,必能福利双收。'),
    (0, 3, 2): ('福祥卦', '安宁通泰,占得此卦者宜静而自得,不宜躁而妄取,才得吉祥。'),
    (0, 3, 3): ('攸叙卦', '蒙受奖励,占得此卦者要行善积德,惟有美德,才能自然得到福利。'),
    (0, 3, 4): ('否倾卦', '任人唯贤,占得此卦者所求任何事情,都能得到合理的结局。'),
    (0, 4, 1): ('未形卦', '龙将飞升,占得此卦者虽然目前不能马上实现愿望,却很有潜力上升得志。'),
    (0, 4, 2): ('荡覆卦', '天降灾患,占得此卦者要祈祷天公或自想办法,勿让淫雨为害。'),
    (0, 4, 3): ('避世卦', '贤人隐退,占得此卦者暂时会受小人之气,宜退隐而不宜进取。'),
    (0, 4, 4): ('鬼动卦', '神符驱鬼,占得此卦者要以灵符驱鬼,祭祀拜天得福。'),
    (1, 0, 1): ('微损卦', '小有不吉,占得此卦者自身生命力旺盛,但会遇到一点小的祸患。'),
    (1, 0, 2): ('粗谐卦', '终得好报,占得此卦者要勤勉用事,终有好报,尤其主妇要善于持家。'),
    (1, 0, 3): ('不耕卦', '天降旱灾,占得此卦者干什么都劳而无功。'),
    (1, 0, 4): ('鬼灾卦', '虚耗无救,占得此卦者要祭祀求福,禳除灾祸,小心水火。'),
    (2, 0, 1): ('空亡卦', '劳而无功,占得此卦者做很多事情常常白费很多心力,却难有满意结果。'),
    (2, 0, 2): ('不谐卦', '志趣不合,占得此卦者遇到与自己相近的人和事物反而不能相通融合。'),
    (2, 0, 3): ('习坎卦', '无法施力,占得此卦者想要摆脱厄运,却使自己更加受困,防不胜防。'),
    (2, 0, 4): ('来革卦', '无所依托,占得此卦者因谋生计之故,不得不四处漂泊。'),
    (3, 0, 1): ('无功卦', '空手而归,占得此卦者做了很多事情,却并没有得到应有的收获。'),
    (3, 0, 2): ('雨灾卦', '天降洪涝,占得此卦者无处栖身,费力谋生,却温饱都难以满足。'),
    (3, 0, 3): ('旱灾卦', '赤旱千里,占得此卦者生活艰难,流离失所,凡事难成。'),
    (3, 0, 4): ('远袭卦', '失而复得,占得此卦者自已先有小伤害,但终能制胜敌人,利弊皆有。'),
    (4, 0, 1): ('盗窃卦', '防止行盗,占得此卦者盗窃别人的东西,不能成功据为已有。'),
    (4, 0, 2): ('失律卦', '逆天悖理,占得此卦者违背规律而行,必给自己带来祸殃。'),
    (4, 0, 3): ('奸党卦', '抑制贤才,占得此卦者宜亲贤臣,远小人,举荐正人君子,抑制奸党。'),
    (4, 0, 4): ('口舌卦', '祸福相侍,占得此卦者表面上很兴隆,实际上灾祸潜伏其中,因此要戒慎祸患。'),
    (1, 0, 0): ('未明卦', '前途难料,占得此卦者目前不能马上成功,要静待时机成熟。'),
    (2, 0, 0): ('迁流卦', '人事未定,占得此卦者凡事多不遂意,迁流不定,不能成功。'),
    (3, 0, 0): ('未宁卦', '居无定所,占得此卦者正处于刚刚兴起的阶段,还没有真正强盛。'),
    (4, 0, 0): ('迁流卦', '凶险非常,占得此卦者若沉疴在身,可能有死亡之凶险。'),
    (0, 1, 0): ('发阳卦', '凡事光明,占得此卦者应发挥自身力量,自已筹划,也可信托他人,共同行事。'),
    (0, 2, 0): ('岁登卦', '年终丰收,占得此卦者只要守持正道,静待时机,就会有大收获。'),
    (0, 3, 0): ('人事卦', '人心大快,占得此卦者会走旺运,事事通达,处于事业的兴旺期。'),
    (0, 4, 0): ('保身卦', '慎重自保,占得此卦者不要急于进取,有所作为,而应退避自守,安稳处事。'),
    (0, 0, 1): ('化育卦', '始危后安,占得此卦者能致荣达昌盛,事无不顺,即使开始不顺,终得吉。'),
    (0, 0, 2): ('地利卦', '安静厚重,占得此卦者倚仗自己的天性生存,就能保证小的吉祥。'),
    (0, 0, 3): ('建侯卦', '建功立业,占得此卦者宜有所作为,可适宜变动,创立事业。'),
    (0, 0, 4): ('送终卦', '养生送死,占得此卦者要对长辈送终尽孝,且要真心诚意。'),
    (0, 0, 0): ('纯阴镘卦', '退而保真,占得此卦者不宜有所作为,静守正道,就可无灾祸。')}


# print(gua_dict)

def generate():
    dct = {}

    for i in range(1, 5):
        for j in range(1, 5):
            dct[(i, 0, j)] = ('', '''_''')

    print(dct)


def get_input():
    while True:
        user_input = input("请输入上中下的棋子个数(用空格分割,无输入则是电脑起卦):").strip()
        if not user_input:
            return None
        pieces = [n for n in user_input.split() if n.isdigit()]
        if len(pieces) != 3:
            print("错误:你应该输入三个数字,请重试!")
            continue
        pieces = [int(piece) for piece in pieces]
        if all(0 <= piece <= 4 for piece in pieces):
            return pieces
        else:
            print("错误:每个数字都应该在0到4之间,请重试!")


def simulate_chess_1():
    '''
    个人感觉,比较低级的模拟灵棋的算法
    固定上中下的index
    :return:
    '''
    chess = [random.choice(['正面', '反面']) for _ in range(12)]

    # 创建一个字典来存储“上”,“中”,“下”的数量
    count = {'上': 0, '中': 0, '下': 0}

    # 遍历棋子,如果是正面,就增加对应的位置的数量
    for i, c in enumerate(chess):
        if c == '正面':
            if i < 4:
                count['上'] += 1
            elif i < 8:
                count['中'] += 1
            else:
                count['下'] += 1

    return count


def simulate_chess():
    '''
    模拟灵棋的算法,个人更倾向于这个算法
    :return:
    '''
    # 创建12个棋子,标记位置
    chess = ['上'] * 4 + ['中'] * 4 + ['下'] * 4

    # 打乱棋子的顺序
    random.shuffle(chess)

    # 创建一个空列表来存储正面的棋子
    front_chess = []

    # 遍历棋子,如果是正面,就添加到新的列表中
    for c in chess:
        if random.choice([True, False]):  # 50%的概率是正面
            front_chess.append(c)

    # 创建一个字典来存储“上”,“中”,“下”的数量
    count = {'上': 0, '中': 0, '下': 0}

    # 遍历正面的棋子,统计“上”,“中”,“下”的数量
    for c in front_chess:
        count[c] += 1

    return count


def main_chess():
    if pieces := get_input():
        # 用户输入了有效内容
        print("你输入的棋子个数为:", pieces)
        pieces = tuple(pieces)
    else:
        # 用户无输入内容
        dic = simulate_chess()
        print(dic)
        pieces = (dic['上'], dic['中'], dic['下'])

    gua, saying = gua_dict[(pieces)]
    print(gua)
    print(saying)

def auto_chess():
    dic = simulate_chess()
    print(dic)
    pieces = (dic['上'], dic['中'], dic['下'])
    gua, saying = gua_dict[(pieces)]
    print(gua)
    print(saying)


if __name__ == "__main__":
    main_chess()
    auto_chess()

标签:起卦,Code,Python,排盘,占得,事业,此卦者,input,chess
From: https://www.cnblogs.com/taichi-share/p/18621849

相关文章

  • 1596. 每位顾客最经常订购的商品 - 力扣(LeetCode)
    1596.每位顾客最经常订购的商品-力扣(LeetCode)目标输入表:Productsproduct_idproduct_nameprice1keyboard1202mouse803screen6004harddisk450表:Ordersorder_idorder_datecustomer_idproduct_id12020/7/311122020/7/302232020/8/293342020/7/294152020/6/101262020/8/1......
  • 利用 Python 解决 “奇数之和” 问题
    一、问题描述在这个问题场景中,有着特定的时间和内存限制,每次测试时间限制为2秒,每个测试的内存限制为256MB。我们会获得两个整数 n 和 k,任务是判断 n 是否可以表示为 k 个不同的正奇数(不能被2整除的整数)之和,并且需要对 t 个独立的测试用例进行这样的判断操作。......
  • 用Python让两组数据纵向排序
    一、引言在数据处理和分析中,排序是一项非常基础且重要的操作。排序可以帮助我们更好地理解数据,发现数据中的模式和规律。在Python中,我们可以使用多种方法对数据进行排序。本文将详细介绍如何使用Python对两组数据进行纵向排序,即每一列分别进行排序,同时保持数据的对应关系。我们将......
  • Python模块之threading
    模块作用简介:Python模块之threadingthread模块基本被废弃了,现在多用threading模块来创建和管理子线程有两种方式来创建线程:第一种是:用class继承Thread类,并重写它的run()方法;第二种是:在实例化threading.Thread对象的时候,将线程要执行的任务函数作为参数传入线程。......
  • Python模块之thread
    模块作用简介:Python模块之thread,此模块基本废弃,建议使用threadingPython模块之threading:https://www.cnblogs.com/wutou/p/18621520官方英文帮助:https://docs.python.org/3/library/官方简体中文帮助:https://docs.python.org/zh-cn/3/library/必要操作:>>>......
  • Python 自动化爬虫 绕过JS逆向 爬取淘宝商品数据
    声明:此篇博客仅用于学习交流使用 任何用于非法用途的均与作者无关需要登陆pc端淘宝账号本案例所使用到的模块及工具:Drissionpage  自动化模块  pipinstaldrissionpageJsontimepandas保存数据模块  网址: 淘宝(taobao.com) 爬取步骤:一.初始化浏览器......
  • AtCoder Beginner Contest 385 Solution
    A-Equally(abc385A)题目大意给定三个数,问能不能分成两个以上的组,使其和相同。解题思路两个以上的组要么是两组要么是三组,三组就是三个数都相等,两组就是两个小的加起来等于大的。代码voidsolve(){inta[10];cin>>a[0]>>a[1]>>a[2];sort(a,a+3)......
  • python: Connecting to Oracle 11g Database in Python
     #encoding:utf-8#版权所有2024涂聚文有限公司#许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎#描述:python-mpipinstalloracledb#python-mpipinstallcx_Oracle--upgrade#pipinstallcx_Oracle#Author:geovindu,GeovinDu涂聚文.#......
  • Python 潮流周刊#82:美国 CIA 如何使用 Python?(摘要)
    本周刊由Python猫出品,精心筛选国内外的250+信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进Python技术,并增长职业和副业的收入。分享了12篇文章,12个开源项目,全文2200字。以下是本期摘要:......
  • Toyota Programming Contest 2024#12(AtCoder Beginner Contest 384)D题
    D-RepeatedSequence 思路:先存储数组的前缀和,把周期的和剪掉,这样就只需要查找在一个周期是否满足,枚举1-n,毕竟不确定周期是从哪开始的,对于从当前数为起始的周期,当剩余的数res小于从当前i为起点的i后缀和时,我们只需要查找一个R 满足b[r]-b[i-1]区间和等于res,若最后查......