{"id":345,"date":"2016-06-15T12:18:26","date_gmt":"2016-06-15T10:18:26","guid":{"rendered":"http:\/\/www.hunggartorino.it\/ql\/?p=345"},"modified":"2016-05-13T14:53:11","modified_gmt":"2016-05-13T12:53:11","slug":"numeri-casuali-e-ql-2","status":"publish","type":"post","link":"https:\/\/www.hunggartorino.it\/ql\/numeri-casuali-e-ql-2\/","title":{"rendered":"Numeri casuali e QL"},"content":{"rendered":"<div class=\"article-featured-image\"><\/div>\n<div class=\"article-featured-image\"><\/div>\n<p>Recentemente in lista si \u00e8 discusso sulla effettiva casualit\u00e0 dei numeri \u201crandom\u201d generati dal QL dall\u2019istruzione RND.<\/p>\n<p>Diversamente da quanto avviene sullo ZX Spectrum, la cui omonima funzione non generer\u00e0 mai alcuni valori, sul QL sembra che effettivamente i numeri siano davvero casuali.<\/p>\n<p>Con un semplice programmino di 3 righe lo mettiamo alla prova:<\/p>\n<blockquote><p>REPeat CR_POINTS<br \/>\nPOINT RND(255),RND(255)<br \/>\nEND REPeat<\/p><\/blockquote>\n<p>Tale programma ha il compito di disegnare dei punti a caso e pertanto il rettangolo dello schermo dovrebbe dopo un po\u2019 riempirsi completamente di punti.<\/p>\n<p><a href=\"http:\/\/www.hunggartorino.it\/ql\/wp-content\/uploads\/2016\/03\/Immagine.jpg\" rel=\"attachment wp-att-237\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-237\" src=\"http:\/\/www.hunggartorino.it\/ql\/wp-content\/uploads\/2016\/03\/Immagine.jpg\" alt=\"Immagine\" width=\"253\" height=\"232\" \/><\/a><\/p>\n<p>Da una prima occhiata sembra che davvero alcune zone siano del tutto improbabili dato che sono presenti \u201cbuchi\u201d e righe dove il QL non andr\u00e0 mai a disegnare il punto. In realt\u00e0 il programma proposto non \u00e8 completo in quanto oltre al comando POINT esistono altri comandi e metodi per disegnare dei punti sul QL:\u00a0 PLOT (da caricare, non nativo Qdos) e BLOCK. Un utente della lista (\u201cCRX\u201d)\u00a0 ha analizzato il problema ed ha effettuato i test con i tre comandi e con l\u2019aggiunta del colore. Si ottengono dei risultati differenti.<\/p>\n<pre>100 REMark *** CASUALITA' ***\r\n110 REMark ~~~~~~~~~~~~~~~~~~\r\n120 MODE 8: PAPER 0\r\n130 WINDOW 512,256,0,0: CLS\r\n140 INK 5: CSIZE 0,1: CURSOR 77,130: PRINT \"Point       Block      Plot\"\r\n150 :\r\n160 FOR points=1 TO 3000\r\n170   POINT RND(22 TO 40),RND(60 TO 80)\r\n180   INK RND(1 TO 7)\r\n190 END FOR points\r\n200 :\r\n210 FOR blocks=1 TO 5000\r\n220   BLOCK 2,1,RND(218 TO 280),RND(50 TO 100),RND(1 TO 7)\r\n230 END FOR blocks\r\n240 :\r\n250 REMark ** Richiede PLOT &amp; DRAW **\r\n260 REMark ~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n270 :\r\n280 FOR plots=1 TO 5000\r\n290   PLOT RND(350 TO 410),RND(50 TO 100)\r\n300   INK RND(1 TO 7)\r\n310 END FOR plots<\/pre>\n<p><a href=\"http:\/\/www.hunggartorino.it\/ql\/wp-content\/uploads\/2016\/03\/4casi.jpg\" rel=\"attachment wp-att-238\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-238 aligncenter\" src=\"http:\/\/www.hunggartorino.it\/ql\/wp-content\/uploads\/2016\/03\/4casi-199x300.jpg\" alt=\"4casi\" width=\"199\" height=\"300\" srcset=\"https:\/\/www.hunggartorino.it\/ql\/wp-content\/uploads\/2016\/03\/4casi-199x300.jpg 199w, https:\/\/www.hunggartorino.it\/ql\/wp-content\/uploads\/2016\/03\/4casi-768x1155.jpg 768w, https:\/\/www.hunggartorino.it\/ql\/wp-content\/uploads\/2016\/03\/4casi-681x1024.jpg 681w, https:\/\/www.hunggartorino.it\/ql\/wp-content\/uploads\/2016\/03\/4casi.jpg 1200w\" sizes=\"auto, (max-width: 199px) 100vw, 199px\" \/><\/a><\/p>\n<p>In tutti i casi POINT non riempie mai il rettangolo ma dispone i pixel su una sorta di griglia, sia su QL reale che su emulatore. Con le rom Minerva recenti i colori appaiono tutt\u2019altro che casuali. Con Minerva meno recente e con JS invece tutto appare pi\u00f9 casuale ma\u2026 aguzzando la vista si nota che i pixel sono disposti esattamente nello stesso modo e con i medesimi colori. Dato che l\u2019orologio interno del QL base non dispone di batteria tampone esso si resetta ad ogni accensione; perci\u00f2 la funzionalit\u00e0 di RND, che \u00e8 data da un conteggio in frazioni di secondo dal momento in cui il QL viene acceso, pu\u00f2 essere modificata con lo statement RANDOMISE.<br \/>\nPer esempio, facendo:<br \/>\nRANDOMISE DATE<br \/>\nsi ottengono subito rettangoli dall\u2019aspetto molto pi\u00f9 casuale, senza l\u2019effetto arcobaleno.<\/p>\n<p>Per quanto riguarda i buchi che si notano con il POINT rispetto agli altri comandi, in realt\u00e0 sono dovuti al fatto che POINT,\u00a0a differenza di BLOCK e PLOT, usa le coordinate grafiche e non pixels. Quindi necessita anche di coordinate con valori frazionati (POINT 3.5,8.5) per poter accendere tutti i pixel, mentre RND fornisce solo numeri interi.<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #b3b3b3;\"><em><a id=\"yui_3_16_0_1_1457430934257_1933\" class=\"photo-license-url\" style=\"color: #b3b3b3;\" href=\"https:\/\/creativecommons.org\/licenses\/by\/2.0\/\" target=\"_newtab\" rel=\"license cc:license\" data-rapid_p=\"34\"><span id=\"yui_3_16_0_1_1457430934257_1932\">Photo: <\/span><\/a><a class=\"gallery_link\" style=\"color: #b3b3b3;\" title=\"Dirty numbers\" href=\"https:\/\/www.google.it\/url?sa=i&amp;rct=j&amp;q=&amp;esrc=s&amp;source=images&amp;cd=&amp;cad=rja&amp;uact=8&amp;ved=0ahUKEwiA-9Xv7rDLAhUDQBQKHRX-BvIQjhwIBQ&amp;url=https%3A%2F%2Fwww.flickr.com%2Fphotos%2Fsidelong%2F3466699346&amp;bvm=bv.116274245,d.d24&amp;psig=AFQjCNFjX79CQ8YbovTx3QBoh-GTyghQFw&amp;ust=1457518755756994\">red numbers <\/a>\u00a0 by DaveBleasdale \/\u00a0 <a id=\"yui_3_16_0_1_1457430934257_1933\" class=\"photo-license-url\" style=\"color: #b3b3b3;\" href=\"https:\/\/creativecommons.org\/licenses\/by\/2.0\/\" target=\"_newtab\" rel=\"license cc:license\" data-rapid_p=\"34\">CC BY\u00a0 <\/a>\/ Blurred from original<\/em><\/span><\/p>\n<p><span style=\"color: #b3b3b3;\"><em>\u00a0<\/em><\/span><\/p>\n<div class=\"attribution-info\"><\/div>\n","protected":false},"excerpt":{"rendered":"Recentemente in lista si \u00e8 discusso sulla effettiva casualit\u00e0 dei numeri \u201crandom\u201d generati dal QL dall\u2019istruzione RND. Diversamente da quanto avviene sullo ZX \n<a class=\"moretag\" href=\"https:\/\/www.hunggartorino.it\/ql\/numeri-casuali-e-ql-2\/\"> [..more...]<\/a>","protected":false},"author":3,"featured_media":318,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-345","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-senza-categoria-it"],"_links":{"self":[{"href":"https:\/\/www.hunggartorino.it\/ql\/wp-json\/wp\/v2\/posts\/345","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hunggartorino.it\/ql\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hunggartorino.it\/ql\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hunggartorino.it\/ql\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hunggartorino.it\/ql\/wp-json\/wp\/v2\/comments?post=345"}],"version-history":[{"count":6,"href":"https:\/\/www.hunggartorino.it\/ql\/wp-json\/wp\/v2\/posts\/345\/revisions"}],"predecessor-version":[{"id":695,"href":"https:\/\/www.hunggartorino.it\/ql\/wp-json\/wp\/v2\/posts\/345\/revisions\/695"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hunggartorino.it\/ql\/wp-json\/wp\/v2\/media\/318"}],"wp:attachment":[{"href":"https:\/\/www.hunggartorino.it\/ql\/wp-json\/wp\/v2\/media?parent=345"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hunggartorino.it\/ql\/wp-json\/wp\/v2\/categories?post=345"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hunggartorino.it\/ql\/wp-json\/wp\/v2\/tags?post=345"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}