<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Kombinationen im Array nach der Dempster-Shafer-Theorie]]></title><description><![CDATA[<p>Guten abend zusammen. Meine Frage könnte einigen von euch ein lächeln abringen, da ich mir selber das Thema nicht allzu schwer vorstelle, dennoch aber (da Anfänger) keine Lösung finde.<br />
Es geht um ein Programm welches mir Wahrscheinlichkeiten ausgibt. Besser gesagt nach der Dempster-Shafer-Theorie (DST).<br />
Hatte hierzu auch einen Code gefunden doch ich benutze einen speziellen Fall.</p>
<p><strong>Worum geht es:</strong></p>
<p>Ich habe unterschiedlich viele Blöcke die so aufgebaut sind.<br />
m1=[0,75],[0],[0,25]<br />
m2=[0,6],[0],[0,4]<br />
m3=[0,8],[0],[0,2]<br />
.<br />
.<br />
.<br />
Dadurch ergeben sich Möglichkeiten der Kombination im Schema von<br />
m1 m2 m3<br />
0 0 0<br />
0 0 1<br />
0 1 0<br />
. . .<br />
. . .<br />
. . .<br />
1 1 1</p>
<p>Also nach dem Schema der Potenz 2^3=8 möglich Kombinationen. Da ich 11 Werte eingebe, hätte ich also 2^11 (2048) möglich Kombinationen.</p>
<p>Für die Kombination einzelner Elemente gilt diese Regel<br />
Bsp.:<br />
m1m2Θ=(m1[0,75]*m2[0,6])+(m1[0,75]*m2[0,4])+m1[0,25]*m2[0,6]) =0,9<br />
mlm2Ω= m1[0,25]*m2[0,4]= 0,1</p>
<p>&quot;Stimmt die Bedingung? Ja-&gt; 0,9+0,1=1&quot; // Nur zur Veranschaulichung</p>
<p>m1m2m3Θ=(m1m2[0,9]*m3[0,8])+(m1m2[0,9]*m3[0,2])+m1m2Ω[0,1]*m3[0,8]=0,98</p>
<p>m1m2m3Ω=m1m2Ω[0,1]*m3Ω[0,2]=0,02<br />
Stimmt die Bedingung? Ja-&gt; 0,98+0,02=1</p>
<p><strong>Was habe ich bis jetzt:</strong></p>
<pre><code>#include &lt;iostream&gt;
#include &lt;math.h&gt;

using namespace std;

int main() 
{
   int omega;
   int afkt;

   cout &lt;&lt; &quot;Bitte geben Sie die groesse des Wahrnehmungsrahmen (Omega) an: &quot;&lt;&lt; endl;
   cin &gt;&gt;  omega;

   cout &lt;&lt; &quot;Geben Sie die Anzahl der Gewichtsfunktionen ein: &quot; &lt;&lt; endl;
   cin &gt;&gt; afkt;

   double val1 = pow(2,afkt);                                                     // 2^omega
   cout &lt;&lt; &quot;Insgesamt werden: &quot;&lt;&lt; val1 &lt;&lt; &quot; Kombinationen berechnet!&quot; &lt;&lt;endl;       // Anzahl der Möglichen Kombinationen unter DST

   float feld1[afkt][3];                                                       // Feld in der Größe von afkt mit jeweils drei Teilen

   for (int i=0; i &lt; afkt; i++)                                                    // Feld Füllen
   {
      for (int j=0; j &lt; 3; j++) 
      {
         cout &lt;&lt; &quot;Eingabe: &quot;;
         cin &gt;&gt; feld1[i][j];
      }
   }  
cout &lt;&lt; &quot;Folgende Werte wurden Eingegeben :\n&quot;;          
                                                         //   x1,y1,omega1; m1  
   for (int l=0; l &lt; afkt; l++)                          //   x2,y2,omega2, m2
   {
      for (int k=0; k &lt; 3; k++) 
      {
         cout &lt;&lt;&quot;[&quot; &lt;&lt;feld1[l][k]&lt;&lt;&quot;]&quot; &lt;&lt; &quot;;&quot;;
      }
      cout &lt;&lt; &quot;m&quot;&lt;&lt;l+1 &lt;&lt;&quot;\n&quot;;
   } 
   //Berechnung

   system(&quot;PAUSE&quot;);
   return 0;
}
</code></pre>
<p>Soweit habe ich es mir bis jetzt aufgebaut. Das Problem jetzt. Wie bekomme ich die Berechnung von oben hin? Von der Logik würde ich wieder auf Schleifen setzten, komm aber nicht mal zum Ansatz.<br />
Das Ergebnis der Rechnungen würde wieder gleich Ausgegeben werden:<br />
-----<br />
m1=[0,75][0][0,25]<br />
m2=[][][]<br />
m3=[][][]<br />
.<br />
.<br />
.<br />
m1m2m3...mx=[][][]</p>
<p>Also insgesamt 2048 &quot;mögliche&quot; Ausgaben.<br />
Stehe hier bissl an der Wand mit C++. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Falls ich vielleicht etwas zu oberflächlich sein sollte, entschuldige ich mich. Gerne gebe ich weitere Auskünfte. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Flo</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/317524/kombinationen-im-array-nach-der-dempster-shafer-theorie</link><generator>RSS for Node</generator><lastBuildDate>Tue, 28 Jul 2026 22:04:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/317524.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 11 Jun 2013 17:57:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Kombinationen im Array nach der Dempster-Shafer-Theorie on Tue, 11 Jun 2013 17:57:55 GMT]]></title><description><![CDATA[<p>Guten abend zusammen. Meine Frage könnte einigen von euch ein lächeln abringen, da ich mir selber das Thema nicht allzu schwer vorstelle, dennoch aber (da Anfänger) keine Lösung finde.<br />
Es geht um ein Programm welches mir Wahrscheinlichkeiten ausgibt. Besser gesagt nach der Dempster-Shafer-Theorie (DST).<br />
Hatte hierzu auch einen Code gefunden doch ich benutze einen speziellen Fall.</p>
<p><strong>Worum geht es:</strong></p>
<p>Ich habe unterschiedlich viele Blöcke die so aufgebaut sind.<br />
m1=[0,75],[0],[0,25]<br />
m2=[0,6],[0],[0,4]<br />
m3=[0,8],[0],[0,2]<br />
.<br />
.<br />
.<br />
Dadurch ergeben sich Möglichkeiten der Kombination im Schema von<br />
m1 m2 m3<br />
0 0 0<br />
0 0 1<br />
0 1 0<br />
. . .<br />
. . .<br />
. . .<br />
1 1 1</p>
<p>Also nach dem Schema der Potenz 2^3=8 möglich Kombinationen. Da ich 11 Werte eingebe, hätte ich also 2^11 (2048) möglich Kombinationen.</p>
<p>Für die Kombination einzelner Elemente gilt diese Regel<br />
Bsp.:<br />
m1m2Θ=(m1[0,75]*m2[0,6])+(m1[0,75]*m2[0,4])+m1[0,25]*m2[0,6]) =0,9<br />
mlm2Ω= m1[0,25]*m2[0,4]= 0,1</p>
<p>&quot;Stimmt die Bedingung? Ja-&gt; 0,9+0,1=1&quot; // Nur zur Veranschaulichung</p>
<p>m1m2m3Θ=(m1m2[0,9]*m3[0,8])+(m1m2[0,9]*m3[0,2])+m1m2Ω[0,1]*m3[0,8]=0,98</p>
<p>m1m2m3Ω=m1m2Ω[0,1]*m3Ω[0,2]=0,02<br />
Stimmt die Bedingung? Ja-&gt; 0,98+0,02=1</p>
<p><strong>Was habe ich bis jetzt:</strong></p>
<pre><code>#include &lt;iostream&gt;
#include &lt;math.h&gt;

using namespace std;

int main() 
{
   int omega;
   int afkt;

   cout &lt;&lt; &quot;Bitte geben Sie die groesse des Wahrnehmungsrahmen (Omega) an: &quot;&lt;&lt; endl;
   cin &gt;&gt;  omega;

   cout &lt;&lt; &quot;Geben Sie die Anzahl der Gewichtsfunktionen ein: &quot; &lt;&lt; endl;
   cin &gt;&gt; afkt;

   double val1 = pow(2,afkt);                                                     // 2^omega
   cout &lt;&lt; &quot;Insgesamt werden: &quot;&lt;&lt; val1 &lt;&lt; &quot; Kombinationen berechnet!&quot; &lt;&lt;endl;       // Anzahl der Möglichen Kombinationen unter DST

   float feld1[afkt][3];                                                       // Feld in der Größe von afkt mit jeweils drei Teilen

   for (int i=0; i &lt; afkt; i++)                                                    // Feld Füllen
   {
      for (int j=0; j &lt; 3; j++) 
      {
         cout &lt;&lt; &quot;Eingabe: &quot;;
         cin &gt;&gt; feld1[i][j];
      }
   }  
cout &lt;&lt; &quot;Folgende Werte wurden Eingegeben :\n&quot;;          
                                                         //   x1,y1,omega1; m1  
   for (int l=0; l &lt; afkt; l++)                          //   x2,y2,omega2, m2
   {
      for (int k=0; k &lt; 3; k++) 
      {
         cout &lt;&lt;&quot;[&quot; &lt;&lt;feld1[l][k]&lt;&lt;&quot;]&quot; &lt;&lt; &quot;;&quot;;
      }
      cout &lt;&lt; &quot;m&quot;&lt;&lt;l+1 &lt;&lt;&quot;\n&quot;;
   } 
   //Berechnung

   system(&quot;PAUSE&quot;);
   return 0;
}
</code></pre>
<p>Soweit habe ich es mir bis jetzt aufgebaut. Das Problem jetzt. Wie bekomme ich die Berechnung von oben hin? Von der Logik würde ich wieder auf Schleifen setzten, komm aber nicht mal zum Ansatz.<br />
Das Ergebnis der Rechnungen würde wieder gleich Ausgegeben werden:<br />
-----<br />
m1=[0,75][0][0,25]<br />
m2=[][][]<br />
m3=[][][]<br />
.<br />
.<br />
.<br />
m1m2m3...mx=[][][]</p>
<p>Also insgesamt 2048 &quot;mögliche&quot; Ausgaben.<br />
Stehe hier bissl an der Wand mit C++. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Falls ich vielleicht etwas zu oberflächlich sein sollte, entschuldige ich mich. Gerne gebe ich weitere Auskünfte. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Flo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2330332</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2330332</guid><dc:creator><![CDATA[flos]]></dc:creator><pubDate>Tue, 11 Jun 2013 17:57:55 GMT</pubDate></item></channel></rss>