(71B) Buffon's Needle - Printable Version +- HP Forums (https://www.hpmuseum.org/forum) +-- Forum: HP Software Libraries (/forum-10.html) +--- Forum: General Software Library (/forum-13.html) +--- Thread: (71B) Buffon's Needle (/thread-13610.html) |
(71B) Buffon's Needle - SlideRule - 09-08-2019 04:00 PM An extract from Buffon, [kiyoshiakima url] "2 Simulation Programs Buffon's Needle can be implemented easily on all but the smallest HP programmable … 2.2 BASIC For the HP-71B the following BASIC program simulates the experiment. It prompts for the number of ten-throw trials, then prints the occurrences of each outcome and an estimate for π. 10 DESTROY ALL @ OPTION BASE 0 @ RADIANS @ DIM R(11) @ P=0 20 INPUT N @ FOR I=1 TO N 30 H=0 @ FOR J=1 TO 10 @ IF RND()<SIN(RND()*PI) THEN H=H+1 40 NEXT J @ R(H)=R(H)+1 @ P=P+H 50 NEXT I 60 FOR I=0 TO 10 @ PRINT I;R(I) @ NEXT I 70 PRINT 20*N/P" BEST! SlideRule RE: (71B) Buffon's Needle - Valentin Albillo - 09-08-2019 09:54 PM (09-08-2019 04:00 PM)SlideRule Wrote: 30 H=0 @ FOR J=1 TO 10 @ IF RND()<SIN(RND()*PI) THEN H=H+1 You will get a syntax error entering line 30, it's just RND, without the parentheses, not RND(). Also, it should run somewhat faster if you include the NEXT J also in line 30, like this: 30 H=0 @ FOR J=1 TO 10 @ H=H+(RND<SIN(RND*PI)) @ NEXT J (written and posted on the go using a tablet, still not at my laptop) Regards. V. . RE: (71B) Buffon's Needle - J-F Garnier - 09-09-2019 07:20 AM (09-08-2019 09:54 PM)Valentin Albillo Wrote:(09-08-2019 04:00 PM)SlideRule Wrote: 30 H=0 @ FOR J=1 TO 10 @ IF RND()<SIN(RND()*PI) THEN H=H+1 Actually, RND(), with parentheses, is a valid syntax on the HP71, as for other functions without argument. Even PI can be entered as PI() since PI is a function from the HP71 system point of view. J-F |