Byla vydána nová stabilní verze 25.05 linuxové distribuce NixOS (Wikipedie). Její kódové označení je Warbler. Podrobný přehled novinek v poznámkách k vydání. O balíčky se v NixOS stará správce balíčků Nix.
Multiplatformní open source spouštěč her Heroic Games Launcher byl vydán v nové stabilní verzi 2.17.0 Franky (Mastodon, 𝕏). Přehled novinek na GitHubu. Instalovat lze také z Flathubu.
Organizace Apache Software Foundation (ASF) vydala verzi 26 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.
Klávesnice IBM Enhanced Keyboard, známá také jako Model M, byla poprvé představena v roce 1985, tzn. před 40 lety, s počítači IBM 7531/7532 Industrial Computer a 3161/3163 ASCII Display Station. Výročí připomíná článek na zevrubném sběratelském webu Admiral Shark's Keyboards. Rozložení kláves IBM Enhanced Keyboard se stalo průmyslovým standardem.
Vyšlo Pharo 13 s vylepšenou podporou HiDPI či objektovým Transcriptem. Pharo je programovací jazyk a vývojové prostředí s řadou pokročilých vlastností.
Java má dnes 30. narozeniny. Veřejnosti byla představena 23. května 1995.
1. července Mozilla vypne službu Fakespot pro detekci podvodných recenzí v internetových obchodech. Mozilla koupila Fakespot v květnu 2023.
8. července Mozilla vypne službu Pocket (Wikipedie) pro ukládání článků z webu na později. Do 8. října si uživatelé mohou vyexportovat data. Mozilla koupila Pocket v únoru 2017. Několik měsíců byl Pocket integrovanou součástí Firefoxu.
Turris OS má aktuálně problém s aktualizací související s ukončením podpory protokolu OCSP u certifikační autority Let's Encrypt.
Nevidomý uživatel Linuxu v blogu upozornil na tristní stav přístupnosti na linuxovém desktopu (část první, druhá, závěr), přičemž stížnosti jsou podobné jako v roce 2022. Vyvolal bouřlivou odezvu. Následně např. Georges Stavracas shrnul situaci v GNOME. Debata o jiném aspektu přístupnosti, emulaci vstupu pod Waylandem, také proběhla na Redditu.
1) Kdyz A = 10, tak B = 2 2) Kdyz A = 20, tak B = 0.3Kolik bude B, kdyz A bude nekde mezi temi 10 a 20? B klesa linearne, mezi 2 a 0.3 je primka. Takze napr. GnuPlot mi vykresli graf, ale neukaze vzorec vypoctu. Nevedeli byste nekdo, co je toto za vypocet? Kdyztak predem diky za pripadne tipy.
Řešení dotazu:
if A1/B1=5 && A2/B2=9 then An/Bn=?
B = -0,17 * A + 3,7
if A1/B1=5 && A2/B2=9 then An/Bn=?
if 10/2 && 20/0.3 then 13.7/?dava to nejaky smysl? Myslim jako vypocet, ne jako programovani, to je jen pseudokod.
2 = 10x + y ? = 13.8x + y 0,3 = 20x + y
7 = 5000x + y ? = 5850x + y 0,01 = 6700x + y
1) Kdyz A = 10, tak B = 2 2) Kdyz A = 20, tak B = 0,3prepiseme
1) Kdyz X = 10, tak Y = 2 2) Kdyz X = 20, tak Y = 0,3Zavislost nech je linearna (priamka), Ale daj obrazok grafu, z neho sa da urcit, aka je to funkcia (linerarna, exponencionalna, …) Ak priamka:
Y = A * X + Btak pre dve zavisle hodnoty rovnakej funkcie bude vseobecne:
Y1 = A * X1 + B Y2 = A * X2 + BDosadime hodnoty:
2=A*10+B 0,3=A*20+BA riesime sustavu rovnic s dvoma neznamymi (matematika),
2=10*A+B 0,3=20*A+BPouzijeme scitaciu metodu
2 = 10 * A + B 0,3 = 20 * A + B / *(-1) --------------------------- 2 = 10 * A + B -0,3 = (-20) * A + B (scitame riadky) -0,7 = (-10) * A + B / *(-1) 0,7 = 10 * A A = 0,07 A dosadime do 1, rovnice zo zadanie: 2 = 10 * A + B 2 = 0,07 * 10 + B 2 = 0,7 + B / -0,7 B = 2 - 0,7 B = 1,3Dostali sme:
A = 0,07 B = 1,3Vysledna zavislost je:
Y = 0,7 * X + 1,3
// y = K1 * x + K2 - rovnica priamky float x1,x2,x3,y1,y2,y3,K1,K2; x1 = 10; // x-ova suradnica bodu 1 y1 = 2; // y-ova suradnica bodu 1 x2 = 20; // x-ova suradnica bodu 2 y2 = 0.3; // y-ova suradnica bodu 2 // Vypocet K1 a K2: K1 = (y2-y1)/(x2-x1); K2 = y1 - K1 * x1; x3 = 14.5; // x-ova suradnica bodu 3 // Neznama suradnica y bodu 3: y3 = K1 * x3 + K2;
2.000000 = -0.170000 * 10.000000 + 3.700000 3.649000 = -0.170000 * 0.300000 + 3.700000Kod overaci:
#include <stdio.h> int main() { float x1,x2,x3,y1,y2,y3,K1,K2; x1 = 10; // x-ova suradnica bodu 1 y1 = 2; // y-ova suradnica bodu 1 x2 = 20; // x-ova suradnica bodu 2 y2 = 0.3; // y-ova suradnica bodu 2 // Vypocet K1 a K2: K1 = (y2-y1)/(x2-x1); K2 = y1 - K1 * x1; x3 = 14.5; // x-ova suradnica bodu 3 // Neznama suradnica y bodu 3: y3 = K1 * x3 + K2; x3=10; y3= K1 * x3 + K2; printf("%f = %f * %f + %f\n", y3, K1, x3, K2); x3=0.3; y3= K1 * x3 + K2; printf("%f = %f * %f + %f\n", y3, K1, x3, K2); return 0; }
#include <stdio.h> int main() { float x1,x2,x3,y1,y2,y3,K1,K2; x1 = 10; // x-ova suradnica bodu 1 y1 = 2; // y-ova suradnica bodu 1 x2 = 20; // x-ova suradnica bodu 2 y2 = 0.3; // y-ova suradnica bodu 2 // Vypocet K1 a K2: K1 = (y2-y1)/(x2-x1); K2 = y1 - K1 * x1; x3 = 14.5; // x-ova suradnica bodu 3 // Neznama suradnica y bodu 3: y3 = K1 * x3 + K2; x3=10; y3= K1 * x3 + K2; printf("%f = %f * %f + %f\n", y3, K1, x3, K2); x3=20; y3= K1 * x3 + K2; printf("%f = %f * %f + %f\n", y3, K1, x3, K2); return 0; }
linsolve([10*x + b - 2, 20*x + b - 0.3], (x, b))
, kde x, b
jsou importované symboly. Takže pak prostě
def fce(x): return -0.17*x + 3.7A odkud plyne předpoklad lineární závislosti? Je jasné, že Gnuplot propojí dva body přímkou. Čím jiným? Nekonečným počtem křivek? Má ta úloha opravdu lineární vztah ve svém základu?
Načež soused mě poučil, že kdyby tu ty hory nebyly, tak Slunce nemá kam zapadnout a je pořád světlo.Ale vždyť to je pravda, kdyby tady nebyla ta [neprůhledná] země pod tebou, tak vidíme Slunce i v noci -- zespodu.
10*x_1 +x_2 = 2 20*x_2 + x_2 = 0,3,což zobecníme (to chceš, jak jsem pochopil) a přepíšeme to do tvaru
a_11*x_1 + a_12*x_2 = b_1 a_21*x_1 + a_22*x_2 = b_2.Ve tvém případě je
a_11 = 10, a_12 = 1, a_21 = 20, a_22 = 1
, že ano. Nyní se zachováme jako dospělí lidé a tuto soustavu zapíšeme v maticovém tvaru:
| a_11 a_12 | |x_1| |b_1| | | | | = | | | a_21 a_22 | |x_2| |b_2|Přesuneme se někdy do roku 1750 ;) a použijeme tzv. Cramerovo pravidlo, které říká, že pro naši hledanou
x_i
platí
det A_i x_i = ---------, det Akde
det A
je determinant matice soustavy a det A_i
je determinant téže matice, ovšem nahradíme-li i-tý sloupec maticí pravých stran, tj. například
| b_1 a_12 | det A_1 = det | |. | b_2 a_22 |Determinant matice "2x2" vypočteš jako
det A = a_11*a_22 - a_21*a_12
, takže jde o rozdíl součinů diagonál v naznačeném směru. Samozřejmě platí, že determinant soustavy nesmí být nulový (matice soustavy musí být regulární).
Zcela stejně pak pro det A_1
a též det A_2
máš
| b_1 a_12 | det A_1 = det | | = b_1*a_22 - b_2*a_12, | b_2 a_22 | | a_11 b_1 | det A_2 = det | | = a_11*b_2 - a_21*b_1. | a_21 b_2 |No a teď už můžeš spočítat
x_1, x_2
, takže
det A_1 b_1*a_22 - b_2*a_12 x_1 = --------- = ----------------------- det A a_11*a_22 - a_21*a_12 det A_2 a_11*b_2 - a_21*b_1 x_2 = --------- = ----------------------- det A a_11*a_22 - a_21*a_12A to je celý algoritmus, který potřebuješ. Můžeme si zkusit dosadit tvé konkrétní numerické vstupy, pak
2*1 - 0,3*1 1,7 x_ 1 = ----------- = --- = -0,17, 10*1 - 20*1 -10 10*0,3 - 20*2 3 - 40 -37 x_2 = --------------- = ------ = ----- = 3,7 -10 -10 -10Takže máme řešení
y(x) = a*x + b = -0,17 + 3,7
.
Pro tvůj konkrétní problém, kdy máš pořád a_12 = a_22 = 1
, řešení zdegeneruje na jednodušší formu
det A_1 b_1 - b_2 x_1 = --------- = ------------- det A a_11 - a_21 det A_2 a_11*b_2 - a_21*b_1 x_2 = --------- = -------------------- det A a_11 - a_21A výsledný kód by byl zhruba něco jako
def najdi_rovnici(a_1, a_2, b_1, b_2): det_A = float(a_1 - a_2) det_A_1 = b_1 - b_2 det_A_2 = a_1*b_2 - a_2*b_1 x_1 = det_A_1/det_A x_2 = det_A_2/det_A print 'y(x) := %s*x + %s' % (x_1, x_2) return None # nebo třeba # return x_1, x_2Když v Pythonu takový kód spustím pro tvé zadání, dostanu
>>> najdi_rovnici(10, 20, 2, 0.3) y(x) := -0.17*x + 3.7Jestli jsem někde udělal chybu, sorráč, nejsem účetní. Ale princip bys měl z toho pochopit.
from numpy import linalg # Matice A, matice B ma = [[10, 1], [20, 1]] mb = [2, 0.3] res = linalg.solve(ma, mb) print(res) # Vrací [ -0.17 3.7 ] # Výpočet trvá pár mikrosekund.Analytická metoda se spočte v řádu nanosekund. Ale podobně rychle to jde i v Julii:
A = [10 1; 20 1] b = [2; 0.3] A \ b # Vrací # 2-element Vector{Float64}: # -0.17 # 3.7
Tiskni
Sdílej: