<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p><font face="Arial">Obráceně. Y bude v intervalu 1 - 100. Asi jsem
to napsal blbě, Z </font> ~ Y/X.</p>
<p>Jasně, takto cyklem to určitě půjde.</p>
<p>Dělit lze cokoli čímkoli, celočíselně i float.</p>
<p>Já doufal, že by šlo najít vzorce, kde jestliže zadám Z, získám
odpovídající X a Y, kde jediná podmínka je, že X musí bý 50 .. 100</p>
<p>Jen na vsvětlení, co jsem si to vymyslel: Potřebuji udělat PWM na
cca 160 kHz na ATMega, kde hodiny jsou na 16MHz. Tím mi vychází na
celou periodu 100 kroků. Pokud se pohybuji v horní části (pulz je
dostatečně dlouhý) je krok změny PWM dostatečně jemný. Ale na
dolním konci, kdy poměr ON-OFF je třeba 1:10 je velký rozdíl mezi
10 a 11. Proto jsem hledal řešení, kde například (raději jemněji)
10.5 lze získat jako 84 / 8, tedy Y = 84; X = 8;<br>
</p>
<pre class="moz-signature" cols="72">Martin Záruba</pre>
<div class="moz-cite-prefix">Dne 14.7.2024 v 12:54 Stanislav Šmejkal
napsal(a):<br>
</div>
<blockquote type="cite"
cite="mid:300a7beb-9fbf-4291-b3b7-1002f8f9a898@smejkal.com">Neúplné
zadání.
<br>
<br>
X je celočíselné v intervalu 50 .. 100
<br>
Y je celočíselné v libovolném intervalu 1 ... N?
<br>
Z je reálné číslo v intervalu 0,01 .. 1
<br>
X/Y ~ Z
<br>
Y bude tedy v intervalu 50 .. 10000 (50/1 .. 100/0,01)
<br>
<br>
Hledáme ze všech možných zlomků X/Y takový, který nejlépe
aproximuje reálné číslo Z?
<br>
<br>
Pokud je toto úplné zadání, pak stačí pro čísla X = 50 .. 100
nalézt odchylku D = abs(round (X/Z) - X/Z)
<br>
<br>
Stačí projít 51 cyklů a hledat nejmenší odchylku D, poznamenat si
jí odpovídající X a vypočítat Y = round(X/Z)
<br>
<br>
Standa
<br>
<br>
Možné upřesnění zadání:
<br>
Lze dělit i Y/X?
<br>
<br>
Dne 14.07.2024 v 11:56 Martin Záruba napsal(a):
<br>
<blockquote type="cite">Nenapadá mě, jak řešit:
<br>
<br>
Mám dvě celočíselné proměnné X a Y.
<br>
<br>
X má nabývat nejlépe hodnoty 100, ale může klesnout až na 50.
<br>
<br>
Jak udělat vzorce pro X a Y, aby jejich podíl se co nejlépe
blížil zadané hodnotě Z.
<br>
<br>
Podíl (reálné číslo) se může pohybovat v rozsahu 0.01 až 1, ale
to asi není podstatné.
<br>
<br>
</blockquote>
_______________________________________________
<br>
HW-list mailing list - sponsored by <a class="moz-txt-link-abbreviated" href="http://www.HW.cz">www.HW.cz</a>
<br>
<a class="moz-txt-link-abbreviated" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a>
<br>
<a class="moz-txt-link-freetext" href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a>
<br>
</blockquote>
</body>
</html>