Python 給定列表,搜索滿足條件的可能取值

需求:R1,R2,R3均為3個(gè)元素的列表,對(duì)應(yīng)元素相加,需要滿足關(guān)系R1+R2=R3。分別給定3組R1,R2,R3的可能取值的絕對(duì)值,通過(guò)改變這些值的符號(hào),使得滿足R1+R2=R3.

  • 完整代碼:
# ************************************************************************
# _*_coding:utf-8_*_
# Author: Pandas120 (微信)
# Desription: R1,R2,R3均為3個(gè)元素的列表,對(duì)應(yīng)元素相加,需要滿足關(guān)系R1+R2=R3。分別給定3組R1,R2,R3的可能取值的絕對(duì)值,通過(guò)改變這些值的符號(hào),使得滿足R1+R2=R3.
# ************************************************************************

def new_value(R_value):
    new_list = []
    range_value = [1,-1]
    for value in R_value:
        for i in range_value:
            for j in range_value:
                for k in range_value:
                    value1 = [xx*yy for xx,yy in zip([i,j,k],value)]
                    if value1 not in new_list:
                        new_list.append(value1)
    return new_list


if __name__=="__main__":
    abs_values_R1 = [[1, 2, 1], [2, 2, 1], [1, 4, 1]]
    abs_values_R2 = [[1, 0, 1], [0, 2, 1], [1, 2, 1]]
    abs_values_R3 = [[1, 0, 2], [0, 2, 2], [1, 2, 2]]
    abs_values_R1 = new_value(abs_values_R1)
    abs_values_R2 = new_value(abs_values_R2)
    abs_values_R3 = new_value(abs_values_R3)

    data = ['R1_1,R1_2,R1_3,R2_1,R2_2,R2_3,R3_1,R3_2,R3_3']
    for r1_value in abs_values_R1:
        for r2_value in abs_values_R2:
            for r3_value in abs_values_R3:
                if [i + j for i, j in zip(r1_value, r2_value)]  ==r3_value:
                    res = ",".join([str(x) for x in r1_value+ r2_value+r3_value])
                    data.append(res)
    if len(data)==1:
        print('沒(méi)有匹配的結(jié)果!!')      
    else:        
        outstr = "\n".join(data)
        with open('res.csv','w') as f:
            f.write(outstr)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 什么是函數(shù) 我們知道圓的面積計(jì)算公式為: S = πr2 當(dāng)我們知道半徑r的值時(shí),就可以根據(jù)公式計(jì)算出面積。假設(shè)我...
    _王子_閱讀 624評(píng)論 0 2
  • 1 前言 OpenGL渲染3D模型離不開(kāi)空間幾何的數(shù)學(xué)理論知識(shí),而本篇文章的目的就是對(duì)空間幾何進(jìn)行簡(jiǎn)單的介紹,并對(duì)...
    RichardJieChen閱讀 7,536評(píng)論 1 11
  • 一、Python中數(shù)據(jù)類型 計(jì)算機(jī)顧名思義就是可以做數(shù)學(xué)計(jì)算的機(jī)器,因此,計(jì)算機(jī)程序理所當(dāng)然地可以處理各種數(shù)值。但...
    大嘴蝸牛閱讀 1,145評(píng)論 0 5
  • mod運(yùn)算,即求余運(yùn)算,是在整數(shù)運(yùn)算中求一個(gè)整數(shù) x 除以另一個(gè)整數(shù)y的余數(shù)的運(yùn)算,且不考慮運(yùn)算的商。在計(jì)算機(jī)程序...
    充滿活力的早晨閱讀 10,476評(píng)論 0 0
  • 為什么使用函數(shù) 我們知道圓的面積計(jì)算公式為:S = πr2當(dāng)我們知道半徑r的值時(shí),就可以根據(jù)公式計(jì)算出面積。假設(shè)我...
    Davidham3閱讀 2,092評(píng)論 0 0

友情鏈接更多精彩內(nèi)容