Java Programm Gleichungssytem 3. Grades/Cramersche Regel?

Hallo, ich habe ein Programm erstellt, dass mithilfe der Cramerschen Regel ein Gleichungssytem 3. Grades löst (siehe unten) Nur kommt bei dem Ergebnis immer x1=0.0, x2=0.0 und x3=0.0 raus, egal was man eingibt. Ich finde den Fehler einfach nicht, kann mir da bitte jemand weiterhelfen?

LG

import java.util.*;
public class gs3 {
    public static void main(String[] args) {
        Scanner ein = new Scanner(System.in);
        System.out.println("Geben Sie den Koeffizienten des Gleichungssystems ein:");
        double[][] m = new double[3][4];
        for (int i = 0; i < 3; i++) {
            System.out.println("Gleichung " + (i + 1) + ":");
            for (int j = 0; j < 3; j++) {
                System.out.println("Koeffizient x" + (j + 1) + ":");
                m[i][j] = ein.nextDouble();
            }
            System.out.println("Rechte Seite: ");
            m[i][3] = ein.nextDouble();
        }
        double determinanteA = calculateDeterminant(m);
        if (determinanteA == 0) {
            System.out.println("Gleichungssystem nicht lösbar.");
        } else {
            double[] ergebnis = new double[3];
            for (int i = 0; i < 3; i++) {
                double[][] modifiedM = modifyM(m, i);
                double determinantModified = calculateDeterminant(modifiedM);
                ergebnis[i] = determinantModified / determinanteA;
            }
            System.out.println("Lösung: x1 = " + ergebnis[0] + ", x2 = " + ergebnis[1] + ", x3 = " +
                ergebnis[2]);
        }
        ein.close();
    }
    private static double calculateDeterminant(double[][] m) {
        double determinante = 0.0;
        determinante = m[0][0] * (m[1][1] * m[2][2] - m[1][2] * m[2][1]) -
            m[0][1] * (m[1][0] * m[2][2] - m[1][2] * m[2][0]) +
            m[0][2] * (m[1][0] * m[2][1] - m[1][1] * m[2][0]);
        return determinante;
    }
    private static double[][] modifyM(double[][] m, int column) {
        double[][] modifiedM = new double[3][3];
        for (int i = 0; i < 3; i++) {
            for (int j = 0, k = 0; j < 3; j++) {
                if (j != column) {
                    modifiedM[i][k++] = m[i][j];
                }
            }
        }
        return modifiedM;
    }
}

Computer, Programm, programmieren, Java, Array, codieren, Codierung, Informatik, Programmiersprache
YouTube: Maßnahmen gegen Werbeblocker?

Guten Abend liebe GF-Community.

YouTube: Maßnahmen gegen Werbeblocker sorgen für hunderttausende Deinstallationen.

YouTube hat damit begonnen, weltweit gegen die Nutzung von Werbeblockern vorzugehen. Und das macht sich nun auch bei den Entwicklern dieser Tools bemerkbar.

Ein Werbeblocker galt lange Zeit als bester Freund des YouTube-Nutzers. In den vergangenen Jahren wurde die Menge an Werbung auf der Videoplattform kontinuierlich erhöht, was für viel Unmut unter den Zuschauern sorgte. Wer keine Lust hatte, ein kostenpflichtiges Premium-Abonnement abzuschließen, griff also kurzerhand zu einem der zahlreichen Adblocker.

Für YouTube war das natürlich ein Problem. Immerhin sind geblockte Werbungen gleichbedeutend mit entgangenen Einnahmen. So entschied man sich vor ein paar Wochen dazu, die Nutzung solcher Werbeblocker ein für alle Mal zu bekämpfen. Wer trotzdem versucht einen zu verwenden, bekommt seit neustem störende Hinweisbanner eingeblendet, welche die Nutzung der Plattform teilweise komplett verhindern.

Offenbar war YouTube für viele Nutzer der ausschlaggebende Grund, warum sie überhaupt einen Adblocker installiert hatten. Denn seitdem die Maßnahmen ins Leben gerufen wurden, seien bereits hunderttausende Werbeblocker wieder deinstalliert worden. Das geht aus einem Bericht von Wired hervor.

Durch die Bank weg seien alle Anbieter von Werbeblockern betroffen – manche mehr, andere weniger stark. AdGuard beispielsweise verzeichnete allein am 18. Oktober rund 52.000 Deinstallationen der eigenen Software. Gleichzeitig sollen sich seitdem aber auch mehr Menschen für ein Abonnement des AdGuard Premiumservices entschieden haben.

Generell soll sich nicht nur die Anzahl der Deinstallationen, sondern auch die der Installationen im Oktober erhöht haben. Scheinbar sind viele Nutzer noch am ausprobieren, welche Werbeblocker weiterhin auf YouTube funktionieren und welche nicht. Es ist wahrscheinlich der Beginn eines klassischen Katz-und-Maus-Spiels, bei dem sich die beiden Parteien immer wieder mit neuen technologischen Lösungen überbieten. Wie lange die Adblocker-Betreiber dieses Spiel durchhalten können, wird sich zeigen müssen.

| Artikel:

YouTube: Maßnahmen gegen Werbeblocker sorgen für hunderttausende Deinstallationen

| Frage:

Findet ihr diese Entscheidung gut?

Mit freundlichen Grüßen

Robin | TechBrain. :)

Bild zum Beitrag
| Nein. Ich finde diese Entscheidung nicht gut. 58%
| Ich habe eine andere Meinung zu diesem Thema. 25%
| Ja. Ich finde diese Entscheidung gut. 17%
Computer, Handy, Musik, Werbung, Internet, Software, Windows, YouTube, Kinder, Google, Geld, Sicherheit, Programm, Jugendliche, Recht, Eltern, Gesetz, Unterhaltung, iOS, Social Media, Android, Erwachsene, YouTuber
C# Programm das gerecht Verteilen kann?

Hallo Leute, ich hoffe euch geht's gut.

Ich bin noch ziemlich neu hier und auch in der Welt von C# nicht gerade der Profi, aber ich liebe es, in meiner Freizeit zu programmieren.

Vor ein paar Wochen habe ich mit C# angefangen und arbeite jetzt an einem Projekt für eine App. Ich tüftle an einem Programm, das verschiedene Dinge (zum Beispiel 3 Tomaten, 4 Bananen und 6 Äpfel) gerecht auf eine festgelegte Anzahl von Tüten verteilt (sagen wir 3 Tüten).

Die Gesamtanzahl jeder Obstsorte und die Gesamtanzahl der Dinge insgesamt dürfen sich höchstens um eins unterscheiden, damit es für jede Tüte so fair wie möglich bleibt.

Mein Ansatz ist, eine Liste von Integer-Arrays zu erstellen, die ich

bags
nennen würde.

Jeder Teil dieser Liste würde dann ein Integer-Array beinhalten, in dem die Gegenstände für jede Tüte gespeichert werden.

Versteht ihr, worauf ich hinauswill? Ich könnte echt eure Hilfe gebrauchen und wäre dankbar für eure Gedanken dazu, wie ich am besten vorgehen sollte. Sollte ich die Anzahl der Dinge teilen oder wie würdet ihr das angehen? Bin gespannt auf eure Vorschläge! Danke schon mal im Voraus.

Mein C# Code Ansatz:

// Online C# Editor for free
// Write, Edit and Run your C# code using C# Online Compiler

using System;

public class HelloWorld
{
  public static void Main() 
  {
    double[] objects = new double[]{4,4,2};
    Pack(objects, 3);
  }
   
  public static void Pack(double[] things, int numBags)
  {
    double[] results = new double[]{0,0,0};
    double[] sumUp = new double[]{0,0,0};
     
    for(int i = 0; i < things.Length; i++) 
    {
      double current = things[i] / numBags;
      double nextnumber = (double)Math.Floor(current);
       
      results[i] = current;
       
      double part = current - nextnumber;
      sumUp[i] = part;
       
      Console.WriteLine(results[i] + "/" + Math.Floor(current) + "/" + part);
    }
     
    for(int b = 0; b < sumUp.Length; b++) 
    {
      sumUp[b] = sumUp[b] * numBags;
      Console.WriteLine(sumUp[b]);
    }
  }
}
Programm, programmieren, C Sharp, Programmiersprache, Algorithmus

Meistgelesene Fragen zum Thema Programm