Po nákresech ovladače Steam Controller a puku společnost Valve na svém GitLabu publikovala projekt Inkterface, tj. podrobný návod (PDF, video v mp4) na sestavení předního panelu s e-papírovým displejem pro Steam Machine pro zobrazování systémových informací. Použity jsou součástky od společnosti Adafruit.
V jádře Linux byla nalezena a v dubnu letošního roku v upstreamu opravena kritická zranitelnost Bad Epoll aneb CVE-2026-46242. Jedná se o zranitelnost typu "race-condition use-after-free", která běžnému uživateli umožňuje získat práva roota. Na distribucích Linuxu i na Androidu. Dokonce i zevnitř sandboxu prohlížeče Chrome. Chyba byla do Linuxu zavedena v dubnu 2023, tj. Linux 6.4.
Byla vydána nová verze 10.4 sady aplikací pro SSH komunikaci OpenSSH. Přináší řadu důležitých bezpečnostních oprav, vylepšení funkcí a oprav chyb. Vyzkoušet lze experimentální podporu postkvantového algoritmu mldsa44-ed25519.
Open Printer je otevřená kompaktní tiskárna od Open Tools. Brzy by měla být spuštěna kampaň na její podporu na Crowd Supply. Současně by měly být uvolněny zdrojové kódy. Postavena je na Raspberry Pi Zero W a STM32. Používá inkoustové kazety HP 302.
Byla vydána nová verze 3.28.0 FreeRDP, tj. svobodné implementace protokolu RDP (Remote Desktop Protocol). Opraveno bylo 8 zranitelností.
Čeští policisté společně se svými tureckými kolegy zadrželi 51 lidí, kteří se podle kriminalistů podíleli na provozu podvodného call centra v Istanbulu. Skupina je spojena s 1173 případy podvodů na českých občanech, při kterých vznikla škoda přes 553 milionů korun.
Immich byl vydán v nové verzi 3.0.0. Jedná se o alternativu k výchozím aplikacím od Googlu a Applu pro správu fotografií a videí umožňující vlastní hosting serveru Immich. K vyzkoušení je demo. Immich je součástí balíčků open source aplikací FUTO. Zdrojové kódy jsou k dispozici na GitHubu pod licencí AGPL-3.0.
Společnost Juno Computers prodávající počítače s předinstalovaným Linuxem má nově v nabídce linuxový tablet Juno Tab 4 - WiFi. Na výběr je Debian, Ubuntu a Kubuntu. Předobjednat jej lze za 949 liber (26 500 korun).
Podman (Pod Manager), nástroj umožňující vytvářet a provozovat kontejnery, aniž by uživatel potřeboval práva roota, byl vydán v nové major verzi 6.0.0. Přehled novinek v poznámkách k vydání. Řešena je i vážná bezpečnostní chyba CVE-2026-57231.
Společnost Sony oznámila, že od ledna 2028 přestane vydávat nové hry pro PlayStation na fyzických discích. Všechny budoucí tituly budou dostupné výhradně v digitální podobě na PlayStation Store.
Tiskni
Sdílej:
> blassic monte_carlo Syntax horror in 70
70 IF X > U THEN 90
GOTO 90 ?
IF X > U THEN GOTO 90
Z Archa jsem vydoloval blassic (a classic interpreter of basic), naťukal source do souboru a hodil mu to.
Možná stojí za úvahu použít skutečný kompilátor - FreeBasic. S různými těmi interprety nemám dobré zkušenosti.
Tady je funční ekvivalent v pythonu:
import random, math
n = 0
print "No. OF THROWS ; PI"
for j in xrange(1,24):
for k in xrange(1,500):
x = random.random()
u = math.sin(math.pi*random.random())
if x < u:
n += 1
t = 500*j
p = 2*float(t)/float(n)
print t, ";", p
dobrá práce, díky moc
real 0m0.053s user 0m0.036s sys 0m0.000s
marek@mantisha:~/pi> time python pi.py 10000 ; 3.11041990669 real 0m0.125s user 0m0.108s sys 0m0.016s marek@mantisha:~/pi> gfortran pi-jehla.f95 marek@mantisha:~/pi> time ./a.out *** 3.122561 real 0m0.009s user 0m0.004s sys 0m0.004s marek@mantisha:~/pi>
PROGRAM PI_JEHLA integer :: i = 1,pocet_iteraci = 10000,vnejsi_citac = 24, splneno = 0, foo = 0 double precision :: pi = 0, random = 0, x = 0, u = 0 double precision,parameter :: const_pi = 3.141592653589793238462643383279 !!print*,"Napiste pocet iteraci" !read(*,*)pocet_iteraci vnitrni: DO call random_number(random) x = random call random_number(random) u = random if(x < sin(u*const_pi)) splneno=splneno+1 i=i+1 ! if(splneno>0) print*,i," -- ",(2*real(i)/real(splneno)) if(i==pocet_iteraci) EXIT vnitrni END DO vnitrni print*,"***",(real(2*pocet_iteraci)/real(splneno)) ENDMístní guruové by to jistě ještě nějak zoptimalizovali.
import random, math
n = 0
for k in xrange(1,10000):
x = random.random()
u = math.sin(math.pi*random.random())
if x < u:
n += 1
t = 10000
p = 2*float(t)/float(n)
print t, ";", p
radovan@PC1:~/basic$ time basic montecarlo.bas No. OF THROWS PI 500 3.125 1000 3.154574 1500 3.144654 2000 3.167063 2500 3.134796 3000 3.176284 3500 3.146067 4000 3.145891 4500 3.144654 5000 3.143666 5500 3.138374 6000 3.138896 6500 3.129514 7000 3.139717 7500 3.127606 8000 3.121342 8500 3.115265 9000 3.119584 9500 3.133245 10000 3.133323 10500 3.124535 11000 3.126332 11500 3.133942 12000 3.136025 real 0m0.041s user 0m0.036s sys 0m0.004s    Jen mě tak napadlo, když se počítá poměr zásahů uvnitř a vně kruhu, nebylo by lepší, než používat umělou "náhodu", prostě udělat mřížku a vzít to bod po bodu? Zkusím na tom po obědě trochu zapracovat.
kyosuke@gondolin:~> ruby <<EOF
> require 'narray'
> def pi(n)
> x, y = Array::new(2){NArray::float(n).random}
> return 4 * ((x**2 + y**2) < 1).mean
> end
> puts " N | Pi \n =================="
> 14.times do |x|
> x = (x%2==0 ? 1 : 3) * 10**(x/2)
> printf " %8d | %f\n", x, pi(x)
> end
> EOF
N | Pi
==================
1 | 4.000000
3 | 4.000000
10 | 2.800000
30 | 2.800000
100 | 3.040000
300 | 3.200000
1000 | 3.056000
3000 | 3.150667
10000 | 3.134400
30000 | 3.150133
100000 | 3.146520
300000 | 3.137933
1000000 | 3.141056
3000000 | 3.141111
kyosuke@gondolin:~>Možná právě proto se to takhle nepočítá...
A hlavně bych nepoužíval tenhle algoritmus...
echo "scale=$kolik_des_cisel; 4*a(1)" | bc -l
Upřímně, kolik lidí kdy v životě použilo z nějakého praktického důvodu více než 20 číslic z desetinného rozvoje čísla pí? :) Myslím, že jich moc nebude to by mělo stačit i pro mezihvězdné vzdálenosti.
Mno jo, kompilátor.)
10 d=54: z=d^2 20 for x=-d to d 30 x2=x^2 40 for y=-d to d 50 if x2+y^2<=z then n=n+1 60 next y 70 next x 80 print n/z 90 exit    Při přibližně stejném počtu pokusů to je dokonce rychlejší, s podobnou přesností:
radovan@PC1:~/basic$ time basic pi_mrizka.bas 3.136145 real 0m0.022s user 0m0.020s sys 0m0.004s    Ale pravda je, že abych z toho dostal správně aspoň pět míst, musel jsem dát d=10000 a počkat si deset minut. On BASIC nikdy nebyl z nejrychlejších, už kvůli tomu počítání s reálnými čísly
V tom Chipmunku jsem ještě nenastudoval jak to přepnout do celých, neznáte někdo obdobu DEFINT A-Z? Pak by ten čas mohl být zajímavější.
(což má smysl jen dokud se vleze jeden řádek do konzole, tzn. pro r do 40):
import sys
r = 10
n = 0
for y in xrange(-r,r+1):
for x in xrange(-r,r+1):
if (x**2 + y**2)**0.5 <= r:
sys.stdout.write(".")
n += 1
else:
sys.stdout.write(" ")
if x == r:
sys.stdout.write("\n")
print "pi =", float(n)/float(r**2)
To mi připomíná jeden pěkný bash skript co jsem někde viděl -- do konzole takhle kreslil Mandelbrotův fraktál
.