Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.sci.electronics > #243216 > unrolled thread
| Started by | Scherer Ralf <RS.2007@gmx.de> |
|---|---|
| First post | 2018-04-24 20:35 +0200 |
| Last post | 2018-05-24 20:28 +0200 |
| Articles | 20 on this page of 77 — 22 participants |
Back to article view | Back to de.sci.electronics
Elektronischer Widerstand Linear? Scherer Ralf <RS.2007@gmx.de> - 2018-04-24 20:35 +0200
Re: Elektronischer Widerstand Linear? Rafael Deliano <rafael_deliano@arcor.de> - 2018-04-24 20:46 +0200
Re: Elektronischer Widerstand Linear? Rafael Deliano <rafael_deliano@arcor.de> - 2018-04-25 06:00 +0200
Re: Elektronischer Widerstand Linear? Scherer Ralf <RS.2007@gmx.de> - 2018-04-26 20:56 +0200
Re: Elektronischer Widerstand Linear? Rafael Deliano <rafael_deliano@arcor.de> - 2018-04-27 06:39 +0200
Re: Elektronischer Widerstand Linear? Heiko Lechner <no.spam.to.me@arcor.de> - 2018-04-27 10:19 +0200
Re: Elektronischer Widerstand Linear? Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2018-04-24 23:11 +0200
Re: Elektronischer Widerstand Linear? Markus Faust <mfaust@htwm.de> - 2018-04-24 21:19 +0000
Re: Elektronischer Widerstand Linear? Scherer Ralf <RS.2007@gmx.de> - 2018-04-26 22:54 +0200
Re: Elektronischer Widerstand Linear? Bernd Laengerich <Bernd.Laengerich@web.de> - 2018-04-27 10:28 +0200
Re: Elektronischer Widerstand Linear? Ole Jansen <remove.this.kaspernasebaer@gmx.de> - 2018-04-25 08:09 +0200
Re: Elektronischer Widerstand Linear? Falk Dµebbert <falk@duebbert.com> - 2018-04-26 11:48 +0200
Re: Elektronischer Widerstand Linear? Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2018-04-26 12:39 +0200
Re: Elektronischer Widerstand Linear? Scherer Ralf <RS.2007@gmx.de> - 2018-04-26 21:27 +0200
Re: Elektronischer Widerstand Linear? Gerrit Heitsch <gerrit@laosinh.s.bawue.de> - 2018-04-26 21:32 +0200
Re: Elektronischer Widerstand Linear? Olaf Schultz <o.schultz@enhydralutris.de> - 2018-04-26 21:39 +0200
Re: Elektronischer Widerstand Linear? Edzard Egberts <news@edzeg.net> - 2018-04-28 15:56 +0200
Re: Elektronischer Widerstand Linear? Edzard Egberts <news@edzeg.net> - 2018-04-28 19:59 +0200
Re: Elektronischer Widerstand Linear? Scherer Ralf <RS.2007@gmx.de> - 2018-05-01 18:24 +0200
Re: Elektronischer Widerstand Linear? Edzard Egberts <news@edzeg.net> - 2018-05-01 19:52 +0200
Re: Elektronischer Widerstand Linear? Axel Berger <Spam@Berger-Odenthal.De> - 2018-05-01 20:18 +0200
Re: Elektronischer Widerstand Linear? Edzard Egberts <news@edzeg.net> - 2018-05-02 08:08 +0200
Re: Elektronischer Widerstand Linear? Axel Berger <Spam@Berger-Odenthal.De> - 2018-05-02 15:09 +0200
Re: Elektronischer Widerstand Linear? Edzard Egberts <news@edzeg.net> - 2018-05-02 15:55 +0200
Re: Elektronischer Widerstand Linear? Axel Berger <Spam@Berger-Odenthal.De> - 2018-05-02 17:35 +0200
Re: Elektronischer Widerstand Linear? Edzard Egberts <news@edzeg.net> - 2018-05-03 09:03 +0200
Re: Elektronischer Widerstand Linear? Holger Schieferdecker <spamless@gmx.de> - 2018-05-03 09:35 +0200
Re: Elektronischer Widerstand Linear? Andreas Neumann <an5275@sedo.com> - 2018-05-03 16:34 +0200
Re: Elektronischer Widerstand Linear? Edzard Egberts <news@edzeg.net> - 2018-05-03 18:52 +0200
Re: Elektronischer Widerstand Linear? Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2018-05-04 10:47 +0200
Re: Elektronischer Widerstand Linear? Edzard Egberts <news@edzeg.net> - 2018-05-04 11:15 +0200
Re: Elektronischer Widerstand Linear? Hans-Peter Diettrich <DrDiettrich1@aol.com> - 2018-05-04 14:30 +0200
Re: Elektronischer Widerstand Linear? Edzard Egberts <news@edzeg.net> - 2018-05-04 16:12 +0200
Re: Elektronischer Widerstand Linear? Holger Schieferdecker <spamless@gmx.de> - 2018-05-04 15:08 +0200
Re: Elektronischer Widerstand Linear? Edzard Egberts <news@edzeg.net> - 2018-05-04 15:39 +0200
Re: Elektronischer Widerstand Linear? Holger Schieferdecker <spamless@gmx.de> - 2018-05-04 16:27 +0200
Re: Elektronischer Widerstand Linear? Edzard Egberts <news@edzeg.net> - 2018-05-04 17:13 +0200
Re: Elektronischer Widerstand Linear? Axel Berger <Spam@Berger-Odenthal.De> - 2018-05-04 16:43 +0200
Re: Elektronischer Widerstand Linear? Holger Schieferdecker <spamless@gmx.de> - 2018-05-04 17:37 +0200
Re: Elektronischer Widerstand Linear? Edzard Egberts <news@edzeg.net> - 2018-05-07 08:09 +0200
Re: Elektronischer Widerstand Linear? Wolfgang Martens <na3506b2013@t-online.de> - 2018-05-03 00:55 +0200
Re: Elektronischer Widerstand Linear? Rafael Deliano <rafael_deliano@arcor.de> - 2018-04-27 10:20 +0200
Re: Elektronischer Widerstand Linear? Matthias Weingart <mwnews@pentax.boerde.de> - 2018-04-27 12:50 +0000
Re: Elektronischer Widerstand Linear? Klaus Butzmann <kb.usenet@butzomail.de> - 2018-04-27 15:04 +0200
Re: Elektronischer Widerstand Linear? Rolf Bombach <rolfnospambombach@invalid.invalid> - 2018-04-27 23:31 +0200
Re: Elektronischer Widerstand Linear? Dieter Wiedmann <dieter.wiedmann@t-online.de> - 2018-04-28 00:46 +0200
Re: Elektronischer Widerstand Linear? Klaus Butzmann <kb.usenet@butzomail.de> - 2018-04-28 10:20 +0200
Re: Elektronischer Widerstand Linear? Rolf Bombach <rolfnospambombach@invalid.invalid> - 2018-04-28 19:02 +0200
Re: Elektronischer Widerstand Linear? Dieter Wiedmann <dieter.wiedmann@t-online.de> - 2018-04-28 19:52 +0200
Re: Elektronischer Widerstand Linear? Andreas Fecht <forum@aftec.de> - 2018-04-28 21:15 +0200
Re: Elektronischer Widerstand Linear? Dieter Wiedmann <dieter.wiedmann@t-online.de> - 2018-04-28 21:36 +0200
Re: Elektronischer Widerstand Linear? Andreas Fecht <forum@aftec.de> - 2018-04-28 22:11 +0200
Re: Elektronischer Widerstand Linear? Dieter Wiedmann <dieter.wiedmann@t-online.de> - 2018-04-28 22:46 +0200
Re: Elektronischer Widerstand Linear? Rolf Bombach <rolfnospambombach@invalid.invalid> - 2018-05-01 15:33 +0200
Re: Elektronischer Widerstand Linear? Rolf Bombach <rolfnospambombach@invalid.invalid> - 2018-04-28 22:57 +0200
Re: Elektronischer Widerstand Linear? Dieter Wiedmann <dieter.wiedmann@t-online.de> - 2018-04-28 23:09 +0200
Re: Elektronischer Widerstand Linear? Rolf Bombach <rolfnospambombach@invalid.invalid> - 2018-04-29 10:11 +0200
Re: Elektronischer Widerstand Linear? Dieter Wiedmann <dieter.wiedmann@t-online.de> - 2018-04-29 10:16 +0200
Re: Elektronischer Widerstand Linear? Andreas Fecht <forum@aftec.de> - 2018-04-29 11:00 +0200
Re: Elektronischer Widerstand Linear? Dieter Wiedmann <dieter.wiedmann@t-online.de> - 2018-04-29 11:06 +0200
Re: Elektronischer Widerstand Linear? Newdo <Newdo@ifmd.de> - 2018-04-29 11:58 +0200
Re: Elektronischer Widerstand Linear? Andreas Fecht <forum@aftec.de> - 2018-04-29 12:34 +0200
Re: Elektronischer Widerstand Linear? Newdo <Newdo@ifmd.de> - 2018-04-29 13:08 +0200
Re: Elektronischer Widerstand Linear? "horst.d.winzler" <horst.d.winzler@web.de> - 2018-04-29 13:35 +0200
Re: Elektronischer Widerstand Linear? Rolf Bombach <rolfnospambombach@invalid.invalid> - 2018-05-01 15:34 +0200
Re: Elektronischer Widerstand Linear? Andreas Fecht <forum@aftec.de> - 2018-05-01 18:58 +0200
Re: Elektronischer Widerstand Linear? Klaus Butzmann <kb.usenet@butzomail.de> - 2018-04-29 00:04 +0200
Re: Elektronischer Widerstand Linear? Klaus Butzmann <kb.usenet@butzomail.de> - 2018-04-29 00:03 +0200
Re: Elektronischer Widerstand Linear? Rolf Bombach <rolfnospambombach@invalid.invalid> - 2018-05-01 15:40 +0200
Re: Elektronischer Widerstand Linear? Scherer Ralf <RS.2007@gmx.de> - 2018-05-01 19:12 +0200
Re: Elektronischer Widerstand Linear? Scherer Ralf <RS.2007@gmx.de> - 2018-05-01 18:49 +0200
Re: Elektronischer Widerstand Linear? Matthias Weingart <mwnews@pentax.boerde.de> - 2018-04-26 09:56 +0000
Re: Elektronischer Widerstand Linear? Rafael Deliano <rafael_deliano@arcor.de> - 2018-04-26 18:24 +0200
Re: Elektronischer Widerstand Linear? Scherer Ralf <RS.2007@gmx.de> - 2018-04-26 21:47 +0200
Re: Elektronischer Widerstand Linear? Rafael Deliano <rafael_deliano@arcor.de> - 2018-04-27 08:05 +0200
Re: Elektronischer Widerstand Linear? Scherer Ralf <RS.2007@gmx.de> - 2018-05-24 18:44 +0200
Re: Elektronischer Widerstand Linear? Edzard Egberts <news@edzeg.net> - 2018-05-24 20:28 +0200
Page 2 of 4 — ← Prev page 1 [2] 3 4 Next page →
| From | Axel Berger <Spam@Berger-Odenthal.De> |
|---|---|
| Date | 2018-05-01 20:18 +0200 |
| Message-ID | <5AE8AF5A.43CDABAC@Berger-Odenthal.De> |
| In reply to | #243386 |
Edzard Egberts wrote: > Na ja, im Moment ist offensichtlich, dass das deutlich länger als > drei Tage dauern würde. Ehrlich gesagt verstehe ich das Problem nicht. Im umgekehrten Fall bei der Reihenschaltung sind es Zweierpotenzen mit einer trivialen Lösung. Nehmen wir gedanklich eine feste Spannung an, dann sind es jetzt Ströme, die addiert werden und wieder ergibt sich die Reihe der Zweierpotenzen. Natürlich ist es jetzt nicht R sondern 1/R, das in gleichen Schritten approximiert wird. Dagegen gibt es imho prinzipiell kein Mittel, eine einheitliche Stufengröße über den Gesamtbereich ist unmöglich. Die Lösung dafür ist aber trivial: Du nimmst den Kehrwert Deines gesuchten Widerstandes und drückst den als nächst-beste Zweierpotenz aus. Fertig ist die nötige Schalterstellung. -- /¯\ No | Dipl.-Ing. F. Axel Berger Tel: +49/ 221/ 7771 8067 \ / HTML | Roald-Amundsen-Straße 2a Fax: +49/ 221/ 7771 8069 X in | D-50829 Köln-Ossendorf http://berger-odenthal.de / \ Mail | -- No unannounced, large, binary attachments, please! --
[toc] | [prev] | [next] | [standalone]
| From | Edzard Egberts <news@edzeg.net> |
|---|---|
| Date | 2018-05-02 08:08 +0200 |
| Message-ID | <pcbkln$ngc$1@news2.open-news-network.org> |
| In reply to | #243390 |
Axel Berger wrote: > Edzard Egberts wrote: >> Na ja, im Moment ist offensichtlich, dass das deutlich länger als >> drei Tage dauern würde. > > Ehrlich gesagt verstehe ich das Problem nicht. Im umgekehrten Fall bei > der Reihenschaltung sind es Zweierpotenzen mit einer trivialen Lösung. > Nehmen wir gedanklich eine feste Spannung an, dann sind es jetzt Ströme, > die addiert werden Weder/noch, es geht rein um Widerstände. Noch einmal die Aufgabenstellung: Gegeben sind 16 Schalter in Parallelschaltung und alle Widerstände der E12-Reihe. Welche Kombination von Widerständen ergibt im Bereich von 80R bis 100k einen möglichst dichten und linearen Verlauf von einstellbaren Widerstandswerten. Ich blicke da nicht, welche Widerstandskombination wohl die Beste wäre und bin gerade einmal auf ein Ausschlusskriterium gekommen - alle Widerstände parallel geschaltet müssen 80R oder kleiner ergeben. > Die Lösung dafür ist aber trivial: Du nimmst den Kehrwert Deines > gesuchten Widerstandes und drückst den als nächst-beste Zweierpotenz > aus. Fertig ist die nötige Schalterstellung. Das ist sicherlich ein anderes Problem, ich suche ja keine Schalterstellung, sondern eine Widerstandskombination.
[toc] | [prev] | [next] | [standalone]
| From | Axel Berger <Spam@Berger-Odenthal.De> |
|---|---|
| Date | 2018-05-02 15:09 +0200 |
| Message-ID | <5AE9B897.C261FFA2@Berger-Odenthal.De> |
| In reply to | #243409 |
Edzard Egberts wrote: > ich suche ja keine > Schalterstellung, sondern eine Widerstandskombination. Das ist dasselbe. Und besser als die Standardlösuhg mit Zweierpotenzen kannst Du bei Schaltern nicht werden. -- /¯\ No | Dipl.-Ing. F. Axel Berger Tel: +49/ 221/ 7771 8067 \ / HTML | Roald-Amundsen-Straße 2a Fax: +49/ 221/ 7771 8069 X in | D-50829 Köln-Ossendorf http://berger-odenthal.de / \ Mail | -- No unannounced, large, binary attachments, please! --
[toc] | [prev] | [next] | [standalone]
| From | Edzard Egberts <news@edzeg.net> |
|---|---|
| Date | 2018-05-02 15:55 +0200 |
| Message-ID | <pccg17$vr1$1@news2.open-news-network.org> |
| In reply to | #243417 |
Axel Berger wrote: > Edzard Egberts wrote: >> ich suche ja keine >> Schalterstellung, sondern eine Widerstandskombination. > > Das ist dasselbe. Und besser als die Standardlösuhg mit Zweierpotenzen > kannst Du bei Schaltern nicht werden. Okay, bevor wir hier noch lange diskutieren, gib' mir doch bitte einfach die 16 Widerstandswerte an, die zur Lösung des Problems benötigt werden. Einfacher als mit der Lösung kannst Du mir nicht beweisen, dass ich die einfache und offensichtliche Lösung nicht sehe. Eine Begründung, warum das dann auch wirklich die beste Gruppierung von Widerständen ist, wäre noch toll.
[toc] | [prev] | [next] | [standalone]
| From | Axel Berger <Spam@Berger-Odenthal.De> |
|---|---|
| Date | 2018-05-02 17:35 +0200 |
| Message-ID | <5AE9DABB.A386C49D@Berger-Odenthal.De> |
| In reply to | #243420 |
Edzard Egberts wrote: > gib' mir doch bitte einfach > die 16 Widerstandswerte an, die zur Lösung des Problems benötigt werden. Gut. Deine Vorgabe war, wenn ich mich richtig erinnere, 80 Ohm als kleinstmöglicher Widertand, gleich alles an, alles parallel. Du beginnst mit 160 Ohm und verdoppelst. also 320, 640 usw. bis Deine maximale Anzahl erreicht wird. Damit hast Du eine lineare Stufung des Leitwertes, des Kehrwertes des Widerstandes, in den kleinstmöglichen gleichen Schritten. Da die Parallelschaltung nun einmal Leitwerte und nicht Widerstände addiert, kannst Du besser nicht werden. Versuchen kannst Du es aber. Wenn Du Widerstände der Art 1, 2, 3, max, also linear aufsteigend willst, dann sind das Leitwerte 1, 1/2, 1/3, usw. Du kannst jetzt versuchen die Glieder dieser Folge jeweils als Summe einer endlichen Zahl möglicher Summanden darzustellen. Vielleicht gibt es doch eine bessere Lösung. Wenn ja findest Du sie aber am ehesten beim Denken in Leitwerten. -- /¯\ No | Dipl.-Ing. F. Axel Berger Tel: +49/ 221/ 7771 8067 \ / HTML | Roald-Amundsen-Straße 2a Fax: +49/ 221/ 7771 8069 X in | D-50829 Köln-Ossendorf http://berger-odenthal.de / \ Mail | -- No unannounced, large, binary attachments, please! --
[toc] | [prev] | [next] | [standalone]
| From | Edzard Egberts <news@edzeg.net> |
|---|---|
| Date | 2018-05-03 09:03 +0200 |
| Message-ID | <pcec8r$pc3$1@news2.open-news-network.org> |
| In reply to | #243430 |
Axel Berger wrote:
> Edzard Egberts wrote:
>> gib' mir doch bitte einfach
>> die 16 Widerstandswerte an, die zur Lösung des Problems benötigt werden.
>
> Gut. Deine Vorgabe war, wenn ich mich richtig erinnere, 80 Ohm als
> kleinstmöglicher Widertand, gleich alles an, alles parallel.
>
> Du beginnst mit 160 Ohm und verdoppelst. also 320, 640 usw. bis Deine
> maximale Anzahl erreicht wird. Damit hast Du eine lineare Stufung des
> Leitwertes, des Kehrwertes des Widerstandes, in den kleinstmöglichen
> gleichen Schritten. Da die Parallelschaltung nun einmal Leitwerte und
> nicht Widerstände addiert, kannst Du besser nicht werden.
Das funktioniert und sieht recht gut aus. Da wird sich der Ralf freuen,
man muss nur noch die nächsten passenden Widerstände aus der R12-Reihe
einsetzen. Das mit der Unterteilung ist mir jetzt so halbwegs klar, im
Detail muss ich aber noch einmal drüber meditieren. ;o)
/*
* main.cpp
*
* Created on: 03.05.2018
* Author: ed
*/
#include <set>
#include <string>
using std::string;
#include <iostream>
using std::cout;
using std::endl;
#include <math.h>
struct s_result
{
int R;
string Switch;
s_result(int r= 0, string S= ""): R(r), Switch(S) {}
int operator < (const s_result& SR) const { return R < SR.R; }
};
typedef std::set< s_result > td_set_result;
int main()
{
double DSE_Reihe[]= {
160, 320, 640, 1280, 2560, 5120, 10240, 20480, 40960, 81920,
163840, 327680, 655360, 1310720, 2621440, 5242880
};
td_set_result Current_R; // Set für aktuelle Ergebnisse
int N_Schalter= 16;
int R_Min= 80, R_Max= 100000;
for (int s= 0; s < pow(2, N_Schalter); ++s)
{ // Zähler für alle Schalterkombinationen von 0 bis 0xFFFF
// R= 1/(1/R1 + 1/R2 + 1/R3 ... + 1/Rn)
string Switches;
double Leitwert= 0;
int Bit= 1;
for (int Pos= 0; Pos < N_Schalter; ++Pos)
{ // Für alle Schalter von 0..N_Schalter
if (s & Bit)
{ // Wenn der Schalter geschlossen ist (1) Leitwert des aktuellen
Widerstands aufaddieren
Leitwert+= 1.0/DSE_Reihe[Pos];
Switches+= '1';
}
else Switches+= '0';
Bit <<= 1; // Nächstes Bit prüfen
}
if (Leitwert)
{
double R= 1/Leitwert; // Aus aufsummierten Leitwert abschließend
Widerstand bestimmen
if (R >= R_Min && R <= R_Max) Current_R.insert(s_result(R +0.5,
Switches)); // Gültigen Wert in die Linearitätsprüfung
}
}
cout << "Widerstandsverlauf Schritte: " << Current_R.size() << endl;
for (td_set_result::const_iterator it= Current_R.begin(); it!=
Current_R.end(); ++it)
cout << it->R << ' ' << it->Switch << endl;
return 0;
}
[toc] | [prev] | [next] | [standalone]
| From | Holger Schieferdecker <spamless@gmx.de> |
|---|---|
| Date | 2018-05-03 09:35 +0200 |
| Message-ID | <pcee4eUm923L1@news.in-ulm.de> |
| In reply to | #243456 |
Am 03.05.2018 um 09:03 schrieb Edzard Egberts: > Axel Berger wrote: >> Edzard Egberts wrote: >>> gib' mir doch bitte einfach >>> die 16 Widerstandswerte an, die zur Lösung des Problems benötigt werden. >> >> Gut. Deine Vorgabe war, wenn ich mich richtig erinnere, 80 Ohm als >> kleinstmöglicher Widertand, gleich alles an, alles parallel. >> >> Du beginnst mit 160 Ohm und verdoppelst. also 320, 640 usw. bis Deine >> maximale Anzahl erreicht wird. Damit hast Du eine lineare Stufung des >> Leitwertes, des Kehrwertes des Widerstandes, in den kleinstmöglichen >> gleichen Schritten. Da die Parallelschaltung nun einmal Leitwerte und >> nicht Widerstände addiert, kannst Du besser nicht werden. > > Das funktioniert und sieht recht gut aus. Da wird sich der Ralf freuen, > man muss nur noch die nächsten passenden Widerstände aus der R12-Reihe > einsetzen. Das mit der Unterteilung ist mir jetzt so halbwegs klar, im > Detail muss ich aber noch einmal drüber meditieren. ;o) Naja, wenn die E12-Reihe keine passenden Werte hergibt, dann kann man sicher auch 2-3 Widerstände in Reihe dafür nehmen (160 Ohm = 150 Ohm + 100 Ohm, 680 Ohm = (560+68+12) Ohm, etc.). Holger
[toc] | [prev] | [next] | [standalone]
| From | Andreas Neumann <an5275@sedo.com> |
|---|---|
| Date | 2018-05-03 16:34 +0200 |
| Message-ID | <pcf6lm$gt6$1@gioia.aioe.org> |
| In reply to | #243460 |
Holger Schieferdecker wrote: > Naja, wenn die E12-Reihe keine passenden Werte hergibt, dann kann man E24 und/oder E96 nehmen. Wozu wurde das Zeugs schliesslich erfunden?
[toc] | [prev] | [next] | [standalone]
| From | Edzard Egberts <news@edzeg.net> |
|---|---|
| Date | 2018-05-03 18:52 +0200 |
| Message-ID | <pcfeo3$aas$1@gwaiyur.mb-net.net> |
| In reply to | #243460 |
Holger Schieferdecker schrieb:
> Am 03.05.2018 um 09:03 schrieb Edzard Egberts:
>> Das funktioniert und sieht recht gut aus. Da wird sich der Ralf freuen,
>> man muss nur noch die nächsten passenden Widerstände aus der R12-Reihe
>> einsetzen. Das mit der Unterteilung ist mir jetzt so halbwegs klar, im
>> Detail muss ich aber noch einmal drüber meditieren. ;o)
>
> Naja, wenn die E12-Reihe keine passenden Werte hergibt, dann kann man
> sicher auch 2-3 Widerstände in Reihe dafür nehmen (160 Ohm = 150 Ohm +
> 100 Ohm, 680 Ohm = (560+68+12) Ohm, etc.).
Aber wenn man zufällig ein Brute-Force-Programm hat, für das eine
Laufzeiteinschränkung gesucht wurde, kann man das auch umdengeln und
nach E12-Kombinationen suchen, die eine möglichst geringe Abweichung
haben! :o)
Ich habe also den dummen Fehler im Linearitätstest korrigiert und die
Werte vom Axel getestet: Relativer Linearitätsfehler 0.92 bei 4447
Schritten.
Für die E12-Reihe kam diese Kombination heraus, mit Fehler 0.91 bei 4338
Schritten:
150 270 560 1500 2200 5600 12000 22000 47000 82000 150000 270000 680000
1.5e+06 2.7e+06 4.7e+06
So, das musste ich doch einfach mal herausfinden! ;o)
Die Idee, dauerhaft einen großen Widerstand parallel zu schalten, taugt
übrigens nichts, sondern verschlechtert die Reihe.
Wer selber damit spielen will, noch mal der Code - selbst für die paar
Kombinationen braucht der noch ordentlich Zeit! Diesmal etwas gekürzt
und ohne Dateiausgabe, ggf. also in eine Datei pipen.
/*
* main.cpp
*
* Created on: 03.05.2018
* Author: ed
*/
#include <set>
#include <vector>
#include <limits>
#include <iostream>
using std::cout;
using std::endl;
#include <math.h>
typedef std::vector< double > td_vector_double;
typedef std::vector< td_vector_double > td_mat_double;
typedef std::set< int > td_set_int;
void Add(double* pDbl, td_vector_double& VD)
{
while (*pDbl)
{
VD.push_back(*pDbl);
++pDbl;
}
}
int main()
{
// Für die Parallelschaltung von 16 Widerständen per Relais soll für den
// Bereich von 80R..100k die Kombination von Widerständen ermittelt werden,
// die die linearste Verteilung von Widerstandswerten ergibt.
//
// double DSE_Reihe[]= {
// 160, 320, 640, 1280, 2560, 5120, 10240, 20480, 40960, 81920,
// 163840, 327680, 655360, 1310720, 2621440, 5242880
// };
//
// double E12_Reihe[]=
// {
// 1.0, 1.2, 1.5, 1.8, 2.2, 2.7, 3.3, 3.9, 4.7, 5.6, 6.8, 8.2, 0.0
// };
double RF0[]= { 150, 180, 0}; // 160
double RF1[]= { 270, 330, 0}; // 320
double RF2[]= { 560, 680, 0}; // 640
double RF3[]= { 1200, 1500, 0}; // 1280
double RF4[]= { 2200, 2700, 0}; // 2560
double RF5[]= { 4700, 5600, 0}; // 5120
double RF6[]= { 10000, 12000, 0}; // 10240
double RF7[]= { 18000, 22000, 0}; // 20480
double RF8[]= { 39000, 47000, 0}; // 40960
double RF9[]= { 82000, 0}; // 81920
double RF10[]= { 150000, 180000, 0}; // 163840
double RF11[]= { 270000, 330000, 0}; // 327680
double RF12[]= { 560000, 680000, 0}; // 655360
double RF13[]= { 1200000, 1500000, 0}; // 1310720
double RF14[]= { 2200000, 2700000, 0}; // 2621440
double RF15[]= { 4700000, 5600000, 0}; // 2621440
td_mat_double R_Mat(16);
Add(&RF0[0], R_Mat[0]);
Add(&RF1[0], R_Mat[1]);
Add(&RF2[0], R_Mat[2]);
Add(&RF3[0], R_Mat[3]);
Add(&RF4[0], R_Mat[4]);
Add(&RF5[0], R_Mat[5]);
Add(&RF6[0], R_Mat[6]);
Add(&RF7[0], R_Mat[7]);
Add(&RF8[0], R_Mat[8]);
Add(&RF9[0], R_Mat[9]);
Add(&RF10[0], R_Mat[10]);
Add(&RF11[0], R_Mat[11]);
Add(&RF12[0], R_Mat[12]);
Add(&RF13[0], R_Mat[13]);
Add(&RF14[0], R_Mat[14]);
Add(&RF15[0], R_Mat[15]);
double R_Min= 80;
double R_Max= 100000;
unsigned N_Schalter= 16;
std::vector< unsigned > Widerstand(N_Schalter, 0); // Für jeden
Schalter ein Widerstandszähler
td_set_int Current_R; // Set für aktuelle Ergebnisse
// Zum Durchprobieren aller Widerstandskombinationen wird für jede
Schalterposition
// ein Index in den R_All-Vektor hochgezählt
double Best_Match= std::numeric_limits< double >::max(); // Kleinere
Werte sind besser!
unsigned Best_Steps= 0;
unsigned s, Bit, Pos, i, r;
double Leitwert, R, Step, R_Lin, Match;
// Variablen vordefinieren beschleunigt die Schleifen
bool Run= true;
while (Run)
{ // Probieren, bis die letzte Stelle zum letzten Widerstand gezählt ist
// Zuerst R_Min der aktuellen Kombination bestimmen, sollte
gewünschten R_Min einhalten
Current_R.clear();
for (s= 1; s < pow(2, N_Schalter); ++s)
{ // Zähler für alle Schalterkombinationen von 1 bis 0xFFFF, Null ist
ungültig
// R= 1/(1/R0 + 1/R1 + 1/R2 ... + 1/Rn)
Leitwert= 0;
Bit= 1;
for (Pos= 0; Pos < N_Schalter; ++Pos)
{ // Für alle Schalter von 0..N_Schalter
if (s & Bit) Leitwert+= 1.0/R_Mat[Pos][Widerstand[Pos]];
// Wenn der Schalter geschlossen ist (1) Leitwert des aktuellen
Widerstands aufaddieren
Bit <<= 1; // Nächstes Bit prüfen
}
R= 1/Leitwert; // Aus aufsummiertem Leitwert abschließend Widerstand
bestimmen
if (R >= R_Min && R <= R_Max) Current_R.insert(R + 0.5);
// Gültigen Wert gerundet in die Linearitätsprüfung
// Beachte: Das verwirft gültige Schalterstellungen, ggf. das set
auf double umstellen!
}
Step= (R_Max - R_Min)/Current_R.size();
R_Lin= R_Min;
Match= 0;
for (td_set_int::const_iterator it= Current_R.begin(); it!=
Current_R.end(); ++it)
{ // Aufsteigende Werte des Sets mit äquivalentem linearen Wert
vergleichen
Match+= fabs(*it - R_Lin)/std::max(*it, int(R_Lin + 0.5)); //
Abweichungen aufaddieren
R_Lin+= Step; // Linearen Vergleichswiderstand aufaddieren
}
Match/= Current_R.size(); // Mittlere Abweichung bestimmen
if (Match <= Best_Match // Bessere oder gleiche Lineariät
|| Best_Steps < Current_R.size()) // Mehr Schritte
{ // Bisher geringste Abweichung von der Linearität gefunden:
cout << Best_Match << ' ' << Best_Steps <<' ';
for (i= 0; i< N_Schalter; ++i) cout << R_Mat[i][Widerstand[i]] << ' ';
cout << endl;
if (Match < Best_Match) Best_Match= Match;
if (Current_R.size() > Best_Steps)
{ // Mehr Schritte gefunden
Best_Steps= Current_R.size();
Best_Match= std::numeric_limits< double >::max();
} // Neuen Match für neue Schritte starten
}
// Widerstandskombinationen hochzählen
for (r= 0; r < N_Schalter; ++r)
{
if (++Widerstand[r] == R_Mat[r].size())
{
Widerstand[r]= 0;
if (r== N_Schalter -1) Run= false;
}
else break;
}
}
return 0;
}
[toc] | [prev] | [next] | [standalone]
| From | Hans-Peter Diettrich <DrDiettrich1@aol.com> |
|---|---|
| Date | 2018-05-04 10:47 +0200 |
| Message-ID | <fl2ldrFtirkU1@mid.individual.net> |
| In reply to | #243475 |
Am 03.05.2018 um 18:52 schrieb Edzard Egberts: > Holger Schieferdecker schrieb: >> Am 03.05.2018 um 09:03 schrieb Edzard Egberts: >>> Das funktioniert und sieht recht gut aus. Da wird sich der Ralf freuen, >>> man muss nur noch die nächsten passenden Widerstände aus der R12-Reihe >>> einsetzen. Das mit der Unterteilung ist mir jetzt so halbwegs klar, im >>> Detail muss ich aber noch einmal drüber meditieren. ;o) >> >> Naja, wenn die E12-Reihe keine passenden Werte hergibt, dann kann man >> sicher auch 2-3 Widerstände in Reihe dafür nehmen (160 Ohm = 150 Ohm + >> 100 Ohm, 680 Ohm = (560+68+12) Ohm, etc.). > > Aber wenn man zufällig ein Brute-Force-Programm hat, für das eine > Laufzeiteinschränkung gesucht wurde, kann man das auch umdengeln und > nach E12-Kombinationen suchen, die eine möglichst geringe Abweichung > haben! :o) Wo kann man da die Toleranz der Widerstände angeben? DoDi
[toc] | [prev] | [next] | [standalone]
| From | Edzard Egberts <news@edzeg.net> |
|---|---|
| Date | 2018-05-04 11:15 +0200 |
| Message-ID | <pch8dh$oe$1@news2.open-news-network.org> |
| In reply to | #243515 |
Hans-Peter Diettrich wrote: > Am 03.05.2018 um 18:52 schrieb Edzard Egberts: >> Aber wenn man zufällig ein Brute-Force-Programm hat, für das eine >> Laufzeiteinschränkung gesucht wurde, kann man das auch umdengeln und >> nach E12-Kombinationen suchen, die eine möglichst geringe Abweichung >> haben! :o) > > Wo kann man da die Toleranz der Widerstände angeben? Die Fehlerrechnung würde man selbstverständlich beim Aufsummieren der Leitwerte durchführen und könnte dann für jede Widerstandskombination die Toleranz angeben.
[toc] | [prev] | [next] | [standalone]
| From | Hans-Peter Diettrich <DrDiettrich1@aol.com> |
|---|---|
| Date | 2018-05-04 14:30 +0200 |
| Message-ID | <fl3240F1ticU1@mid.individual.net> |
| In reply to | #243516 |
Am 04.05.2018 um 11:15 schrieb Edzard Egberts: > Hans-Peter Diettrich wrote: >> Am 03.05.2018 um 18:52 schrieb Edzard Egberts: >>> Aber wenn man zufällig ein Brute-Force-Programm hat, für das eine >>> Laufzeiteinschränkung gesucht wurde, kann man das auch umdengeln und >>> nach E12-Kombinationen suchen, die eine möglichst geringe Abweichung >>> haben! :o) >> >> Wo kann man da die Toleranz der Widerstände angeben? > > Die Fehlerrechnung würde man selbstverständlich beim Aufsummieren der > Leitwerte durchführen und könnte dann für jede Widerstandskombination > die Toleranz angeben. Umgekehrt könnte man auch mit dem größten Widerstand anfangen, und aus dessen Toleranz die akzeptable Abweichung vom Sollwert ermitteln. Deshalb dürfte es bei den kleinen Werten aufwendiger sein, nahe genug an den Sollwert zu kommen, als bei den großen Widerständen. DoDi
[toc] | [prev] | [next] | [standalone]
| From | Edzard Egberts <news@edzeg.net> |
|---|---|
| Date | 2018-05-04 16:12 +0200 |
| Message-ID | <pchpqr$pk3$1@news2.open-news-network.org> |
| In reply to | #243519 |
Hans-Peter Diettrich wrote:
> Am 04.05.2018 um 11:15 schrieb Edzard Egberts:
>> Hans-Peter Diettrich wrote:
>>> Am 03.05.2018 um 18:52 schrieb Edzard Egberts:
>>>> Aber wenn man zufällig ein Brute-Force-Programm hat, für das eine
>>>> Laufzeiteinschränkung gesucht wurde, kann man das auch umdengeln und
>>>> nach E12-Kombinationen suchen, die eine möglichst geringe Abweichung
>>>> haben! :o)
>>>
>>> Wo kann man da die Toleranz der Widerstände angeben?
>>
>> Die Fehlerrechnung würde man selbstverständlich beim Aufsummieren der
>> Leitwerte durchführen und könnte dann für jede Widerstandskombination
>> die Toleranz angeben.
>
> Umgekehrt könnte man auch mit dem größten Widerstand anfangen, und aus
> dessen Toleranz die akzeptable Abweichung vom Sollwert ermitteln.
> Deshalb dürfte es bei den kleinen Werten aufwendiger sein, nahe genug an
> den Sollwert zu kommen, als bei den großen Widerständen.
Ja, das ist recht knifflig - die Toleranz des kleinsten Widerstands
(größter Leitwert) könnte so groß sein, dass durch Parallelschalten des
größten Widerstands (kleinster Leitwert) der Wert einfach immer noch
völlig daneben hängt.
Die ganz pragmatische Lösung wäre wirklich den passenden genauen
Widerstand zu nehmen, wie vom Andreas vorgeschlagen("E96"), aber was
mich hier interessierte, war gerade die beste Abdeckung mit nicht genau
passenden Widerständen. Sollte mir ein Hobby zulegen... ;o)
[toc] | [prev] | [next] | [standalone]
| From | Holger Schieferdecker <spamless@gmx.de> |
|---|---|
| Date | 2018-05-04 15:08 +0200 |
| Message-ID | <pchm07UrnhuL1@news.in-ulm.de> |
| In reply to | #243475 |
Am 03.05.2018 um 18:52 schrieb Edzard Egberts: > Holger Schieferdecker schrieb: >> Am 03.05.2018 um 09:03 schrieb Edzard Egberts: >>> Das funktioniert und sieht recht gut aus. Da wird sich der Ralf freuen, >>> man muss nur noch die nächsten passenden Widerstände aus der R12-Reihe >>> einsetzen. Das mit der Unterteilung ist mir jetzt so halbwegs klar, im >>> Detail muss ich aber noch einmal drüber meditieren. ;o) >> >> Naja, wenn die E12-Reihe keine passenden Werte hergibt, dann kann man >> sicher auch 2-3 Widerstände in Reihe dafür nehmen (160 Ohm = 150 Ohm + >> 100 Ohm, 680 Ohm = (560+68+12) Ohm, etc.). > > Aber wenn man zufällig ein Brute-Force-Programm hat, für das eine > Laufzeiteinschränkung gesucht wurde, kann man das auch umdengeln und > nach E12-Kombinationen suchen, die eine möglichst geringe Abweichung > haben! :o) > > Ich habe also den dummen Fehler im Linearitätstest korrigiert und die > Werte vom Axel getestet: Relativer Linearitätsfehler 0.92 bei 4447 > Schritten. > > Für die E12-Reihe kam diese Kombination heraus, mit Fehler 0.91 bei 4338 > Schritten: > > 150 270 560 1500 2200 5600 12000 22000 47000 82000 150000 270000 680000 > 1.5e+06 2.7e+06 4.7e+06 > > So, das musste ich doch einfach mal herausfinden! ;o) > > Die Idee, dauerhaft einen großen Widerstand parallel zu schalten, taugt > übrigens nichts, sondern verschlechtert die Reihe. Vermutlich stehe ich gerade auf dem Schlauch, aber kannst Du das bitte erklären? Wer kommt wo parallel? Und verschlechtert dann die Reihe? Holger
[toc] | [prev] | [next] | [standalone]
| From | Edzard Egberts <news@edzeg.net> |
|---|---|
| Date | 2018-05-04 15:39 +0200 |
| Message-ID | <pchnsj$mua$1@news2.open-news-network.org> |
| In reply to | #243520 |
Holger Schieferdecker wrote: > Am 03.05.2018 um 18:52 schrieb Edzard Egberts: >> Die Idee, dauerhaft einen großen Widerstand parallel zu schalten, taugt >> übrigens nichts, sondern verschlechtert die Reihe. > > Vermutlich stehe ich gerade auf dem Schlauch, aber kannst Du das bitte > erklären? Wer kommt wo parallel? Und verschlechtert dann die Reihe? Ich hatte die Idee, dass man den größten Widerstand dauerhaft parallel schalten könnte, also 100k für "alle Schalter offen" und dann wird durch Parallelschalten verkleinert. Das ergab beim Ausprobieren allerdings einen größeren Fehler bei weniger Stufen im Vergleich zum Weglassen. So komplett habe ich das noch nicht durchschaut. Ich habe zwar verstanden, warum die Reihe vom Axel die feinste Auflösung bietet (durch die Verdopplung werden die größten Widerstandswerte mit dem kleinsten Leitwert als Schrittweite erzeugt), aber nicht, warum ich immer noch so einen miesen Linearitätsfehler bekomme, der sollte eigentlich fast Null sein und den gesamten Bereich mit der feinsten Auflösung (größter Widerstand) abdecken. Weniger Schritte wären okay, dann wären 16 Schalter für eine Schrittweite von einem Ohm (Rundung auf int) einfach nur überdimensioniert, aber der Fehler müsste dann Null sein. Mal sehen, vielleicht am Wochenende - müsste mal die Ergebnisse plotten, die habe ich mir noch nicht genau angeschaut. Dabei ist das so ein simples Problem!
[toc] | [prev] | [next] | [standalone]
| From | Holger Schieferdecker <spamless@gmx.de> |
|---|---|
| Date | 2018-05-04 16:27 +0200 |
| Message-ID | <pchqjqUrvbiL1@news.in-ulm.de> |
| In reply to | #243521 |
Am 04.05.2018 um 15:39 schrieb Edzard Egberts: > Holger Schieferdecker wrote: >> Am 03.05.2018 um 18:52 schrieb Edzard Egberts: >>> Die Idee, dauerhaft einen großen Widerstand parallel zu schalten, taugt >>> übrigens nichts, sondern verschlechtert die Reihe. >> >> Vermutlich stehe ich gerade auf dem Schlauch, aber kannst Du das bitte >> erklären? Wer kommt wo parallel? Und verschlechtert dann die Reihe? > > Ich hatte die Idee, dass man den größten Widerstand dauerhaft parallel > schalten könnte, also 100k für "alle Schalter offen" und dann wird durch > Parallelschalten verkleinert. Das ergab beim Ausprobieren allerdings > einen größeren Fehler bei weniger Stufen im Vergleich zum Weglassen. Danke, jetzt ist mir klar, was Du meintest. Wenn 100 k permanent parallel sind, hast Du insbesondere bei den hohen Widerständen ein Problem. Wenn ich das richtig sehe, sollen doch zwischen 80 Ohm und 100 kOhm lineare Zwischenwerte erzeugt werden, mit 16 Bit Auflösung. Das macht pro Schritt etwa 1,5 Ohm. Der nächste Wert unterhalb des Maximums wäre also etwa 99998,5 Ohm. Um den zu erhalten, muß man 100.000 Ohm und 6.666.566.667 Ohm parallel schalten. So einen hohen Wert hattest Du vermutlich nicht in der Simulation. Mit den 4,7 MOhm aus Deinem letzten Programm parallel zu 100 kOhm ergeben sich 97916 Ohm, also einen ziemlich großen Fehler, und weitere parallel zu schalten verschlechtert es nur noch. > So komplett habe ich das noch nicht durchschaut. Ich habe zwar > verstanden, warum die Reihe vom Axel die feinste Auflösung bietet (durch > die Verdopplung werden die größten Widerstandswerte mit dem kleinsten > Leitwert als Schrittweite erzeugt), aber nicht, warum ich immer noch so > einen miesen Linearitätsfehler bekomme, der sollte eigentlich fast Null > sein und den gesamten Bereich mit der feinsten Auflösung (größter > Widerstand) abdecken. Weniger Schritte wären okay, dann wären 16 > Schalter für eine Schrittweite von einem Ohm (Rundung auf int) einfach > nur überdimensioniert, aber der Fehler müsste dann Null sein. Hast Du Dein Programm mal mit den exakten Werten von Axel durchlaufen lassen, also 160, 320, 640 etc.? Wie sieht es dann mit dem Fehler aus? > Mal sehen, vielleicht am Wochenende - müsste mal die Ergebnisse plotten, > die habe ich mir noch nicht genau angeschaut. Dabei ist das so ein > simples Problem! Wo ist der Quantencomputer, der alle Berechnungen parallel ausführt? :-) Holger
[toc] | [prev] | [next] | [standalone]
| From | Edzard Egberts <news@edzeg.net> |
|---|---|
| Date | 2018-05-04 17:13 +0200 |
| Message-ID | <pchtbm$uel$1@news2.open-news-network.org> |
| In reply to | #243528 |
Holger Schieferdecker wrote: > Am 04.05.2018 um 15:39 schrieb Edzard Egberts: >> Ich hatte die Idee, dass man den größten Widerstand dauerhaft parallel >> schalten könnte, also 100k für "alle Schalter offen" und dann wird durch >> Parallelschalten verkleinert. Das ergab beim Ausprobieren allerdings >> einen größeren Fehler bei weniger Stufen im Vergleich zum Weglassen. > > Danke, jetzt ist mir klar, was Du meintest. > > Wenn 100 k permanent parallel sind, hast Du insbesondere bei den hohen > Widerständen ein Problem. Das ist sogar ganz grundsätzlich sinnlos, auch wenn es auf den ersten Blick naheliegend erscheint. > Wenn ich das richtig sehe, sollen doch zwischen 80 Ohm und 100 kOhm > lineare Zwischenwerte erzeugt werden, mit 16 Bit Auflösung. Das macht > pro Schritt etwa 1,5 Ohm. Der nächste Wert unterhalb des Maximums wäre > also etwa 99998,5 Ohm. Um den zu erhalten, muß man 100.000 Ohm und > 6.666.566.667 Ohm parallel schalten. So einen hohen Wert hattest Du > vermutlich nicht in der Simulation. Wie schon gesagt, ich sollte vielleicht doch mal selber nachrechnen. > Hast Du Dein Programm mal mit den exakten Werten von Axel durchlaufen > lassen, also 160, 320, 640 etc.? Wie sieht es dann mit dem Fehler aus? Relativer Linearitätsfehler 0.92 bei 4447 Schritten und mit einer E12-Kombination einen Fehler von 0.91 bei 4338 Schritten. Wie Axel nebenan schreibt, die beste Reihe von Leitwerten muss nicht die beste Reihe von Widerständen ergeben... >> Mal sehen, vielleicht am Wochenende - müsste mal die Ergebnisse plotten, >> die habe ich mir noch nicht genau angeschaut. Dabei ist das so ein >> simples Problem! > > Wo ist der Quantencomputer, der alle Berechnungen parallel ausführt? :-) Hehe, der würde mir gefallen, Exponenten sind echt fies!
[toc] | [prev] | [next] | [standalone]
| From | Axel Berger <Spam@Berger-Odenthal.De> |
|---|---|
| Date | 2018-05-04 16:43 +0200 |
| Message-ID | <5AEC7191.9778F852@Berger-Odenthal.De> |
| In reply to | #243521 |
Edzard Egberts wrote: > aber nicht, warum ich immer noch so > einen miesen Linearitätsfehler bekomme, Na ja, halbwegs linear mit gleichen Schritten wird halt der Leitwert und nicht dessen Kehrwert. Für Widerstände wäre eine Serienschaltung mit überbrückenden Kurzzschlußschaltern passender, aber die hast Du ja vorab aussortiert. -- /¯\ No | Dipl.-Ing. F. Axel Berger Tel: +49/ 221/ 7771 8067 \ / HTML | Roald-Amundsen-Straße 2a Fax: +49/ 221/ 7771 8069 X in | D-50829 Köln-Ossendorf http://berger-odenthal.de / \ Mail | -- No unannounced, large, binary attachments, please! --
[toc] | [prev] | [next] | [standalone]
| From | Holger Schieferdecker <spamless@gmx.de> |
|---|---|
| Date | 2018-05-04 17:37 +0200 |
| Message-ID | <pchuoaUs67pL1@news.in-ulm.de> |
| In reply to | #243475 |
Am 03.05.2018 um 18:52 schrieb Edzard Egberts:
> Wer selber damit spielen will, noch mal der Code - selbst für die paar
> Kombinationen braucht der noch ordentlich Zeit! Diesmal etwas gekürzt
> und ohne Dateiausgabe, ggf. also in eine Datei pipen.
Wie lange läuft das Programm eigentlich?
> for (Pos= 0; Pos < N_Schalter; ++Pos)
> { // Für alle Schalter von 0..N_Schalter
> if (s & Bit) Leitwert+= 1.0/R_Mat[Pos][Widerstand[Pos]];
> // Wenn der Schalter geschlossen ist (1) Leitwert des aktuellen
> Widerstands aufaddieren
> Bit <<= 1; // Nächstes Bit prüfen
> }
Hier wäre es vielleicht effizienter, die Leitwerte aller
Einzelwiderstände am Anfang einmal zu berechnen und dann nur diese zu
summieren. Spart die oft gleichen Divisionen 1.0/R_Mat in jedem
Schleifendurchlauf. Wobei vermutlich das ganze Drumrum den größeren
Anteil an der Laufzeit hat.
Holger
[toc] | [prev] | [next] | [standalone]
| From | Edzard Egberts <news@edzeg.net> |
|---|---|
| Date | 2018-05-07 08:09 +0200 |
| Message-ID | <pcoqjt$4sv$1@news2.open-news-network.org> |
| In reply to | #243536 |
Holger Schieferdecker wrote: > Am 03.05.2018 um 18:52 schrieb Edzard Egberts: >> Wer selber damit spielen will, noch mal der Code - selbst für die paar >> Kombinationen braucht der noch ordentlich Zeit! Diesmal etwas gekürzt >> und ohne Dateiausgabe, ggf. also in eine Datei pipen. > > Wie lange läuft das Programm eigentlich? Für diese Kombinationen mit jeweils 2 Widerständen etwa eine halbe Stunde, ansonsten t(Innere Schleife) * Anzahl_Widerstände^16 - die jeweilige Gesamtlaufzeit lässt sich also leicht bestimmen, dieses Programm muss man nicht abwarten. > Hier wäre es vielleicht effizienter, die Leitwerte aller > Einzelwiderstände am Anfang einmal zu berechnen und dann nur diese zu > summieren. *Sicherlich* effizienter! > Wobei vermutlich das ganze Drumrum den größeren Anteil an der Laufzeit hat. Die ganzen Kombinationen sind es! Im Originalprogramm (4 Dekaden * 12 Widerstände) ^ 16 Stellen -> 7.94072E+26 Kombinationen, da dauert reines Hochzählen ohne Berechnung schon sehr lange.
[toc] | [prev] | [next] | [standalone]
Page 2 of 4 — ← Prev page 1 [2] 3 4 Next page →
Back to top | Article view | de.sci.electronics
csiph-web