設萬維讀者為首頁 廣告服務 技術服務 聯繫我們 關於萬維
簡體 繁體 手機版
分類廣告
版主:諍友
萬維讀者網 > 教育學術 > 帖子
Benren2:小學一年級算術題蠻力破解程序
送交者: Benren2 2017年04月01日22:27:04 於 [教育學術] 發送悄悄話

笨人 20170402


在微信同步貼上《小學一年級算術題求解》後,有人問能否給個破解程序。我說沒問題。我用SAS和Python編程得到相同結果,但SAS比Python快很多。那就給個SAS的吧

 

該小學一年級的算術題說的是:8個變量a, b, c, d, e, f, g, h, 在1到8範圍內取不同值, 求解下列4個等式中此8個變量的賦值:

1.   a+b=9

2.   c+d=7

3.   e-f=1

4.   g-h=3

 

下面是用SAS軟件編的蠻力破解此題的程序:

%macro DoValuation(Eq4);
data Output_&Eq4 (Keep=Variable Valuation label="Variable Valuation where g-h=&Eq4");
label Variable='Variable'
      Valuation='Valuation';
length Variable $1 Valuation s1-s8 $7;
array varArr{8} a b c d e f g h;
array lblArr{8} $1 ('a' 'b' 'c' 'd' 'e' 'f' 'g' 'h');
array strArr{8} $7 s1-s8;
do a=1 to 4;
  do b=8 to 5 by -1;
    do c=1 to 3;
          do d=6 to 4 by -1;
            do e=2 to 8;
                   do f=1 to 7;
                      do g=4 to 8;
                             do h=1 to (8 - &Eq4);
                                    AnySame=0;
                                    do i=1 to 7;
                                       do j=i+1 to 8;
                                            if varArr(i)=varArr{j}   then
                                            AnySame=1;
                                           end;
                                     end;
                                     if AnySame=0 and a+b=9 and c+d=7 and
                                       e-f=1 and g-h=&Eq4 then do i=1 to 8;
                                            if strArr(i) ne '' then  strArr(i)=cat(strip(strArr(i)),
                                            put(varArr(i),1.));
                                            else strArr(i)=put(varArr(i),1.);
                                   end;
                                  end;
                           end;
                        end;
                end;
          end;
        end;
   end;
end;
if s1 ne '' then do i=1 to 8;
    Variable=lblArr(i);
    Valuation=strip(strArr(i));
    output;
end;
run;
%mend DoValuation;

%DoValuation(3)



0%(0)
0%(0)
  python code - xi11west 04/03/17 (1049)
  python  /無內容 - xi11west 04/03/17 (1026)
  算術題不用代數也不用電腦 - kshdjj 04/02/17 (1099)
標 題 (必選項):
內 容 (選填項):
實用資訊
回國機票$360起 | 商務艙省$200 | 全球最佳航空公司出爐:海航獲五星
海外華人福利!在線看陳建斌《三叉戟》熱血歸回 豪情築夢 高清免費看 無地區限制
一周點擊熱帖 更多>>
一周回復熱帖
歷史上的今天:回復熱帖
2016: 計算機
2016: 法律是維護社會穩定,而非幫你賺錢
2015: D.QU著:現有xx學科科學原理不等同於"絕
2015: 中軍:人生究竟是什麼
2013: 關於中醫和科學的隨想(2)
2013: 我堅持上海要把外地外國人趕出去,上海
2012: 請看看UBC教授的胡說八道和污衊中國人
2012: Rabbit:暗物質與暗能量的暗地思考