molucule 发表于 2022-3-17 00:15:38

hp 39gs和42s的八皇后程序

本帖最后由 molucule 于 2022-3-17 00:25 编辑

hp 39&40gs的八皇后程序,结果写在矩阵里:

8->N:
MAKELIST(0,B,1,N,1)->L1:
MAKEMAT(0,1,N)->M1:
0->S:
1->K:
1->J:
1->F:
0->L1(1):
WHILE K>0 REPEAT
L1(K)+1->L1(K):
WHILE L1(K)<=N REPEAT
1->J:
1->F:
WHILE J<K AND F==1 REPEAT
   IF(L1(J)==L1(K) OR ABS(L1(J)-L1(K))==ABS(J-K)) THEN
    0->F:
   END:
   J+1->J:
END:
IF F==1 THEN
   BREAK:
END:
L1(K)+1->L1(K):
END:
IF L1(K)<=N THEN
IF K==N THEN
   S+1->S:
   DISP 4;S:
   L1->M2:
   ADDROW M1;M2;1:
ELSE
   K+1->K:
   0->L1(K):
END:
ELSE
K-1->K:
END:
END:
DELROW M1;S+1:



molucule 发表于 2022-3-17 00:18:25

hp 42s的八皇后程序:

执行程序前先:
CLRG
FIX 8
8
STO 00
STO 05
10
STO 06
GTO A
R/S

程序:按一次R/S出一个结果
LBL "NQUEENS"
RCL 01
STO+ 02
RCL 06
STO / 02
1
STO- 00
RCL 00
X<>0?
GTO A
RCL 02
R/S
GTO D
LBL A
RCL 05
STO 01
LBL B
RCL 02
STO 03
CLX
STO 04
LBL C
1
STO+ 04
RCL 06
STO* 03
RCL 03
X=0?
GTO "NQUEENS"
IP
STO- 03
RCL 01
X=Y?
GTO D
-
ABS
RCL 04
X<>Y?
GTO C
LBL D
1
STO- 01
RCL 01
X<>0?
GTO B
1
STO+ 00
RCL 06
STO* 02
RCL 02
IP
STO- 02
STO 01
GTO D

molucule 发表于 2022-3-17 00:24:25

这两个计算器都算是比较慢的,39&40gs算八皇后大约2个多小时,hp 42s算第一个值大约14分钟,后面大约3分钟一个结果。

molucule 发表于 2022-3-17 00:35:42

HP 39&40gs计算两个日期间天数的程序:

子程序DAYS:

INT(D)->M:
(D-M)*100->Z:
INT(Z)->D:
INT((Z-D)*10000)->Y:
IF M<=2
THEN 365*Y+31*(M-1)+D+INT((Y-1)/4)->T:
ELSE 365*Y+31*(M-1)+D+INT(Y/4)-INT(0.4*M+2.3)->T:
END:

主程序:

PROMPT B:
ERASE:
B->D:
RUN DAYS:
T->X:
PROMPT F:
ERASE:
F->D:
RUN DAYS:
T->Y:
ABS(X-Y)->V:
DISP 4;V:
FREEZE:
页: [1]
查看完整版本: hp 39gs和42s的八皇后程序