![]() |
#2
rjsp2019-07-02 13:05
四个数,加减乘除,共有1170个不同的表达式。
以下是这1170个逆波兰表达式 ab*c*d* ab*c*d+ ab*c*d- ab*c*d/ ab*c+d* ab*c+d+ ab*c+d- ab*c+d/ ab*c-d* ab*c-d+ ab*c-d- ab*c-d/ ab*c/d+ ab*c/d- ab*c/d/ ab*cd*+ ab*cd*- ab*cd+* ab*cd+/ ab*cd-* ab*cd-/ ab*cd/+ ab*cd/- ab*d*c+ ab*d*c- ab*d*c/ ab*d+c* ab*d+c/ ab*d-c* ab*d-c/ ab*d/c+ ab*d/c- ab*dc-* ab*dc-/ ab*dc/+ ab*dc/- ab+c*d* ab+c*d+ ab+c*d- ab+c*d/ ab+c+d* ab+c+d+ ab+c+d- ab+c+d/ ab+c-d* ab+c-d+ ab+c-d- ab+c-d/ ab+c/d+ ab+c/d- ab+c/d/ ab+cd*+ ab+cd*- ab+cd+* ab+cd+/ ab+cd-* ab+cd-/ ab+cd/+ ab+cd/- ab+d*c+ ab+d*c- ab+d*c/ ab+d+c* ab+d+c/ ab+d-c* ab+d-c/ ab+d/c+ ab+d/c- ab+dc-* ab+dc-/ ab+dc/+ ab+dc/- ab-c*d* ab-c*d+ ab-c*d- ab-c*d/ ab-c+d* ab-c+d+ ab-c+d- ab-c+d/ ab-c-d* ab-c-d+ ab-c-d- ab-c-d/ ab-c/d+ ab-c/d- ab-c/d/ ab-cd*+ ab-cd*- ab-cd+* ab-cd+/ ab-cd-* ab-cd-/ ab-cd/+ ab-cd/- ab-d*c+ ab-d*c- ab-d*c/ ab-d+c* ab-d+c/ ab-d-c* ab-d-c/ ab-d/c+ ab-d/c- ab-dc/+ ab-dc/- ab/c+d* ab/c+d+ ab/c+d- ab/c+d/ ab/c-d* ab/c-d+ ab/c-d- ab/c-d/ ab/c/d+ ab/c/d- ab/c/d/ ab/cd*+ ab/cd*- ab/cd+/ ab/cd-/ ab/cd/+ ab/cd/- ab/d+c* ab/d+c/ ab/d-c* ab/d-c/ ab/d/c+ ab/d/c- ab/dc-/ ab/dc/+ ab/dc/- abc*+d* abc*+d+ abc*+d- abc*+d/ abc*-d* abc*-d+ abc*-d- abc*-d/ abc*d*+ abc*d*- abc*d+* abc*d+/ abc*d-* abc*d-/ abc*d/+ abc*d/- abc+*d* abc+*d+ abc+*d- abc+*d/ abc+/d+ abc+/d- abc+/d/ abc+d*+ abc+d*- abc+d+* abc+d+/ abc+d-* abc+d-/ abc+d/+ abc+d/- abc-*d* abc-*d+ abc-*d- abc-*d/ abc-/d+ abc-/d- abc-/d/ abc-d*+ abc-d*- abc-d+* abc-d+/ abc-d-* abc-d-/ abc-d/+ abc-d/- abc/+d* abc/+d+ abc/+d- abc/+d/ abc/-d* abc/-d+ abc/-d- abc/-d/ abc/d+* abc/d+/ abc/d-* abc/d-/ abc/d/+ abc/d/- abcd*+* abcd*+/ abcd*-* abcd*-/ abcd+*+ abcd+*- abcd+/+ abcd+/- abcd-*+ abcd-*- abcd-/+ abcd-/- abcd/+* abcd/+/ abcd/-* abcd/-/ abd*+c* abd*+c+ abd*+c- abd*+c/ abd*-c* abd*-c+ abd*-c- abd*-c/ abd*c+* abd*c+/ abd*c-* abd*c-/ abd*c/+ abd*c/- abd+*c* abd+*c+ abd+*c- abd+*c/ abd+/c+ abd+/c- abd+/c/ abd+c*+ abd+c*- abd+c/+ abd+c/- abd-*c* abd-*c+ abd-*c- abd-*c/ abd-/c+ abd-/c- abd-/c/ abd-c*+ abd-c*- abd-c/+ abd-c/- abd/+c* abd/+c+ abd/+c- abd/+c/ abd/-c* abd/-c+ abd/-c- abd/-c/ abd/c+* abd/c+/ abd/c-* abd/c-/ abdc/+* abdc/+/ abdc/-* abdc/-/ ac*b+d* ac*b+d+ ac*b+d- ac*b+d/ ac*b-d* ac*b-d+ ac*b-d- ac*b-d/ ac*b/d+ ac*b/d- ac*b/d/ ac*bd*+ ac*bd*- ac*bd+/ ac*bd-/ ac*bd/+ ac*bd/- ac*d*b+ ac*d*b- ac*d*b/ ac*d+b* ac*d+b/ ac*d-b* ac*d-b/ ac*d/b+ ac*d/b- ac*db-/ ac*db/+ ac*db/- ac+b*d* ac+b*d+ ac+b*d- ac+b*d/ ac+b/d+ ac+b/d- ac+b/d/ ac+bd+* ac+bd+/ ac+bd-* ac+bd-/ ac+d*b+ ac+d*b- ac+d*b/ ac+d+b* ac+d+b/ ac+d-b* ac+d-b/ ac+d/b+ ac+d/b- ac+db-* ac+db-/ ac+db/+ ac+db/- ac-b*d* ac-b*d+ ac-b*d- ac-b*d/ ac-b/d+ ac-b/d- ac-b/d/ ac-bd+* ac-bd+/ ac-bd-* ac-bd-/ ac-d*b+ ac-d*b- ac-d*b/ ac-d+b* ac-d+b/ ac-d-b* ac-d-b/ ac-d/b+ ac-d/b- ac-db/+ ac-db/- ac/b+d* ac/b+d+ ac/b+d- ac/b+d/ ac/b-d* ac/b-d+ ac/b-d- ac/b-d/ ac/bd*+ ac/bd*- ac/bd/+ ac/bd/- ac/d+b* ac/d+b/ ac/d-b* ac/d-b/ ac/d/b+ ac/d/b- ac/db/+ ac/db/- acb-*d* acb-*d- acb-*d/ acb-/d- acb-/d/ acb-d-* acb-d-/ acb/+d* acb/+d+ acb/+d- acb/+d/ acb/-d* acb/-d+ acb/-d- acb/-d/ acb/d+* acb/d+/ acb/d-* acb/d-/ acb/d/+ acb/d/- acbd*-* acbd*-/ acbd+/+ acbd+/- acbd-/+ acbd-/- acbd/-* acbd/-/ acd*+b* acd*+b/ acd*-b* acd*-b/ acd*b-* acd*b-/ acd*b/+ acd*b/- acd+*b+ acd+*b- acd+*b/ acd+/b+ acd+/b- acd+b-* acd+b-/ acd+b/+ acd+b/- acd-*b+ acd-*b- acd-*b/ acd-/b+ acd-/b- acd-b/+ acd-b/- acd/+b* acd/+b/ acd/-b* acd/-b/ acd/b-* acd/b-/ acdb/+* acdb/+/ acdb/-* acdb/-/ ad*b+c* ad*b+c+ ad*b+c- ad*b+c/ ad*b-c* ad*b-c+ ad*b-c- ad*b-c/ ad*b/c+ ad*b/c- ad*b/c/ ad*bc*+ ad*bc*- ad*bc+/ ad*bc-/ ad*bc/+ ad*bc/- ad*c+b* ad*c+b/ ad*c-b* ad*c-b/ ad*c/b+ ad*c/b- ad*cb-/ ad*cb/+ ad*cb/- ad+b*c* ad+b*c+ ad+b*c- ad+b*c/ ad+b/c+ ad+b/c- ad+b/c/ ad+bc+* ad+bc+/ ad+bc-* ad+bc-/ ad+c*b+ ad+c*b- ad+c*b/ ad+c/b+ ad+c/b- ad+cb-* ad+cb-/ ad-b*c* ad-b*c+ ad-b*c- ad-b*c/ ad-b/c+ ad-b/c- ad-b/c/ ad-bc+* ad-bc+/ ad-bc-* ad-bc-/ ad-c*b+ ad-c*b- ad-c*b/ ad-c/b+ ad-c/b- ad/b+c* ad/b+c+ ad/b+c- ad/b+c/ ad/b-c* ad/b-c+ ad/b-c- ad/b-c/ ad/bc*+ ad/bc*- ad/bc/+ ad/bc/- ad/c+b* ad/c+b/ ad/c-b* ad/c-b/ ad/cb/+ ad/cb/- adb-*c* adb-*c- adb-*c/ adb-/c- adb-/c/ adb-c-* adb-c-/ adb/+c* adb/+c/ adb/-c* adb/-c/ adb/c-* adb/c-/ adb/c/+ adb/c/- adbc*-* adbc*-/ adbc+/+ adbc+/- adbc-/+ adbc-/- adbc/-* adbc/-/ adc-*b- adc-*b/ adc-/b- adc/+b* adc/+b/ adc/-b* adc/-b/ adc/b-* adc/b-/ adcb/-* adcb/-/ ba-c*d* ba-c*d- ba-c*d/ ba-c-d* ba-c-d- ba-c-d/ ba-c/d- ba-c/d/ ba-cd*- ba-cd+* ba-cd+/ ba-cd-* ba-cd-/ ba-cd/- ba-d*c- ba-d*c/ ba-d-c* ba-d-c/ ba-d/c- ba-dc/- ba/c+d* ba/c+d+ ba/c+d- ba/c+d/ ba/c-d* ba/c-d+ ba/c-d- ba/c-d/ ba/c/d+ ba/c/d- ba/c/d/ ba/cd*+ ba/cd*- ba/cd+/ ba/cd-/ ba/cd/+ ba/cd/- ba/d+c* ba/d+c/ ba/d-c* ba/d-c/ ba/d/c+ ba/d/c- ba/dc-/ ba/dc/+ ba/dc/- bac*-d* bac*-d- bac*-d/ bac*d*- bac*d+/ bac*d-/ bac*d/- bac+/d+ bac+/d- bac+/d/ bac+d*- bac+d+/ bac+d-/ bac+d/- bac-/d+ bac-/d- bac-/d/ bac-d*- bac-d+/ bac-d-/ bac-d/- bac/-d* bac/-d- bac/-d/ bac/d+/ bac/d-/ bac/d/- bacd*+/ bacd*-/ bacd+*- bacd+/- bacd-*- bacd-/- bacd/+/ bacd/-/ bad*-c* bad*-c- bad*-c/ bad*c+/ bad*c-/ bad*c/- bad+/c+ bad+/c- bad+/c/ bad+c*- bad+c/- bad-/c+ bad-/c- bad-/c/ bad-c*- bad-c/- bad/-c* bad/-c- bad/-c/ bad/c+/ bad/c-/ badc/+/ badc/-/ bc*a-d* bc*a-d- bc*a-d/ bc*a/d+ bc*a/d- bc*a/d/ bc*ad*- bc*ad+/ bc*ad-/ bc*ad/- bc*d*a- bc*d*a/ bc*d+a- bc*d+a/ bc*d-a/ bc*d/a- bc*da-/ bc*da/+ bc*da/- bc+a-d* bc+a-d- bc+a-d/ bc+a/d+ bc+a/d- bc+a/d/ bc+ad*- bc+ad+/ bc+ad-/ bc+ad/- bc+d*a- bc+d*a/ bc+d+a- bc+d+a/ bc+d-a/ bc+d/a- bc+da-/ bc+da/+ bc+da/- bc-a/d+ bc-a/d- bc-a/d/ bc-ad+/ bc-ad-/ bc-d*a- bc-d*a/ bc-d+a/ bc-d-a/ bc-d/a- bc-da/+ bc-da/- bc/a-d* bc/a-d- bc/a-d/ bc/ad*- bc/ad/- bc/d+a- bc/d+a/ bc/d-a/ bc/d/a- bc/da/+ bc/da/- bca-/d- bca-/d/ bca-d-/ bca/+d* bca/+d+ bca/+d- bca/+d/ bca/-d* bca/-d+ bca/-d- bca/-d/ bca/d+* bca/d+/ bca/d-* bca/d-/ bca/d/+ bca/d/- bcad*-/ bcad+/+ bcad+/- bcad-/+ bcad-/- bcad/-/ bcd*+a- bcd*+a/ bcd*-a/ bcd*a-/ bcd*a/+ bcd*a/- bcd+*a- bcd+*a/ bcd+/a- bcd+a-/ bcd+a/+ bcd+a/- bcd-*a- bcd-*a/ bcd-/a- bcd-a/+ bcd-a/- bcd/+a- bcd/+a/ bcd/-a/ bcd/a-/ bcda/+* bcda/+/ bcda/-* bcda/-/ bd*a-c* bd*a-c- bd*a-c/ bd*a/c+ bd*a/c- bd*a/c/ bd*ac*- bd*ac+/ bd*ac-/ bd*ac/- bd*c+a- bd*c+a/ bd*c-a/ bd*c/a- bd*ca-/ bd*ca/+ bd*ca/- bd+a-c* bd+a-c- bd+a-c/ bd+a/c+ bd+a/c- bd+a/c/ bd+ac*- bd+ac+/ bd+ac-/ bd+ac/- bd+c*a- bd+c*a/ bd+c/a- bd+ca-/ bd-a/c+ bd-a/c- bd-a/c/ bd-ac+/ bd-ac-/ bd-c*a- bd-c*a/ bd-c/a- bd/a-c* bd/a-c- bd/a-c/ bd/ac*- bd/ac/- bd/c+a- bd/c+a/ bd/c-a/ bd/ca/+ bd/ca/- bda-/c- bda-/c/ bda-c-/ bda/+c* bda/+c/ bda/-c* bda/-c/ bda/c-* bda/c-/ bda/c/+ bda/c/- bdac*-/ bdac+/+ bdac+/- bdac-/+ bdac-/- bdac/-/ bdc-*a- bdc-*a/ bdc-/a- bdc/+a- bdc/+a/ bdc/-a/ bdc/a-/ bdca/-* bdca/-/ ca-b*d* ca-b*d- ca-b*d/ ca-b-d* ca-b-d- ca-b-d/ ca-b/d- ca-b/d/ ca-bd*- ca-bd+* ca-bd+/ ca-bd-* ca-bd-/ ca-bd/- ca-d*b- ca-d*b/ ca-d-b* ca-d-b/ ca-d/b- ca-db/- ca/b-d* ca/b-d- ca/b-d/ ca/b/d+ ca/b/d- ca/b/d/ ca/bd*- ca/bd+/ ca/bd-/ ca/bd/- ca/d+b- ca/d+b/ ca/d-b/ ca/d/b- ca/db-/ ca/db/+ ca/db/- cab*-d* cab*-d- cab*-d/ cab*d*- cab*d+/ cab*d-/ cab*d/- cab+/d+ cab+/d- cab+/d/ cab+d*- cab+d+/ cab+d-/ cab+d/- cab-/d+ cab-/d- cab-/d/ cab-d*- cab-d+/ cab-d-/ cab-d/- cab/-d* cab/-d- cab/-d/ cab/d+/ cab/d-/ cab/d/- cabd*+/ cabd*-/ cabd+*- cabd+/- cabd-*- cabd-/- cabd/+/ cabd/-/ cad*-b* cad*-b- cad*-b/ cad*b+/ cad*b-/ cad*b/- cad+/b- cad+/b/ cad+b*- cad+b/- cad-/b- cad-/b/ cad-b*- cad-b/- cad/-b* cad/-b- cad/-b/ cad/b+/ cad/b-/ cadb/+/ cadb/-/ cb-a/d- cb-a/d/ cb-ad+/ cb-ad-/ cb-d*a- cb-d*a/ cb-d-a/ cb-d/a- cb-da/- cb/a-d* cb/a-d- cb/a-d/ cb/ad*- cb/ad/- cb/d+a- cb/d+a/ cb/d-a/ cb/d/a- cb/da/+ cb/da/- cba-/d- cba-/d/ cba-d-/ cba/-d* cba/-d- cba/-d/ cba/d+/ cba/d-/ cba/d/- cbad*-/ cbad+/- cbad-/- cbad/-/ cbd*-a/ cbd*a-/ cbd*a/- cbd+/a- cbd+a-/ cbd+a/- cbd-/a- cbd-a/- cbd/-a/ cbd/a-/ cbda/+/ cbda/-/ cd*a-b* cd*a-b- cd*a-b/ cd*a/b- cd*a/b/ cd*ab*- cd*ab+/ cd*ab-/ cd*ab/- cd*b-a/ cd*b/a- cd*ba-/ cd*ba/- cd+a-b* cd+a-b- cd+a-b/ cd+a/b- cd+a/b/ cd+ab*- cd+ab+/ cd+ab-/ cd+ab/- cd+b-a/ cd+b/a- cd+ba-/ cd+ba/- cd-a/b- cd-a/b/ cd-ab+/ cd-ab-/ cd-b/a- cd/a-b* cd/a-b- cd/a-b/ cd/ab*- cd/ab/- cd/b-a/ cd/ba/- cda-/b- cda-/b/ cda-b-/ cda/+b- cda/+b/ cda/-b/ cda/b-/ cda/b/+ cda/b/- cdab*-/ cdab+/+ cdab+/- cdab-/+ cdab-/- cdab/-/ cdb-/a- cdb/+a- cdb/+a/ cdb/-a/ cdb/a-/ cdba/-/ da-b*c* da-b*c- da-b*c/ da-b-c* da-b-c- da-b-c/ da-b/c- da-b/c/ da-bc*- da-bc+* da-bc+/ da-bc-* da-bc-/ da-bc/- da-c*b- da-c*b/ da-c-b* da-c-b/ da-c/b- da-cb/- da/b-c* da/b-c- da/b-c/ da/b/c- da/b/c/ da/bc*- da/bc+/ da/bc-/ da/bc/- da/c-b/ da/c/b- da/cb-/ da/cb/- dab*-c* dab*-c- dab*-c/ dab*c*- dab*c+/ dab*c-/ dab*c/- dab+/c- dab+/c/ dab+c*- dab+c+/ dab+c-/ dab+c/- dab-/c- dab-/c/ dab-c*- dab-c+/ dab-c-/ dab-c/- dab/-c* dab/-c- dab/-c/ dab/c+/ dab/c-/ dab/c/- dabc*+/ dabc*-/ dabc+*- dabc+/- dabc-*- dabc-/- dabc/+/ dabc/-/ dac*-b* dac*-b- dac*-b/ dac*b+/ dac*b-/ dac*b/- dac+/b- dac+/b/ dac+b*- dac+b/- dac-/b- dac-/b/ dac-b*- dac-b/- dac/-b* dac/-b- dac/-b/ dac/b+/ dac/b-/ dacb/+/ dacb/-/ db-a/c- db-a/c/ db-ac+/ db-ac-/ db-c*a- db-c*a/ db-c-a/ db-c/a- db-ca/- db/a-c* db/a-c- db/a-c/ db/ac*- db/ac/- db/c-a/ db/c/a- db/ca/- dba-/c- dba-/c/ dba-c-/ dba/-c* dba/-c- dba/-c/ dba/c+/ dba/c-/ dba/c/- dbac*-/ dbac+/- dbac-/- dbac/-/ dbc*-a/ dbc*a-/ dbc*a/- dbc+/a- dbc+a-/ dbc+a/- dbc-/a- dbc-a/- dbc/-a/ dbc/a-/ dbca/+/ dbca/-/ dc-a/b- dc-a/b/ dc-ab+/ dc-ab-/ dc-b/a- dc/a-b* dc/a-b- dc/a-b/ dc/ab*- dc/ab/- dc/b-a/ dc/ba/- dca-/b- dca-/b/ dca-b-/ dca/-b/ dca/b-/ dca/b/- dcab*-/ dcab+/- dcab-/- dcab/-/ dcb-/a- dcb/-a/ dcb/a-/ dcba/-/ |
一个模糊的思路如下:
void gen_expression_tree(BiTree &t, int num)
{
for(int i = 1; i < num; i++) {
t->data = “+-*/”中的一者 //按次序枚举
gen_expression_tree(t->lchild, i);
gen_expression_tree(t->rchild, num - i);
}
}
num是树中的数字个数。当num=1时,为叶子结点,结点的data域应该是数字,数字的出现次序也是有序的。
sample Output部分给出了输出的最后部分:
(1+(2+(3+4)))
(1+(2+(4+3)))
(1+(2+(3-4)))
(1+(2+(4-3)))
(1+(2+(3*4)))
(1+(2+(4*3)))
(1+(2+(3/4)))
(1+(2+(4/3)))
(1+(3+(2+4)))
(1+(3+(4+2)))
(1+(3+(2-4)))
(1+(3+(4-2)))
......