Ich bin mit 30 € dabei: 50 GB + 1 .de-Domain.
Wenn Dir weniger Speicher reicht, kommst Du mit 12 € weg:

  • 10 GB bei web-service4u.de,
  • oder 2 GB bei Rainbow-Web.

Drunter gibt es wohl nichts.

...zur Antwort

Bist du sicher, dass die y-Position irgendwann genau –200 wird? Selbst bei 32bit-Integern kann das eine halbe Milliarde Durchläufe erfordern.

Prüfe lieber auf <=–200.

...zur Antwort

Deine Induktionsannahme ist falsch: Du hast das +1 im Summanden vergessen.

… (n+1+k)(n+1–k) …

...zur Antwort
Normales Runden funktioniert nicht.

Natürlich nicht! Wenn alle exakten Ergebnisse auf ,5 enden und Du das immer aufrundest, hast Du im Summe 32 zu viel. Du müsstest eben die Hälfte dieser Zahlen abrunden, um die Summe konstant zu halten. Welche Zahlen das sind, ist mehr oder weniger willkürlich.

Zuerst legst Du eine Spalte H an, die die exakten Werte aggregiert, etwa so:

  • H1=E1, Hn=H(n-1)+En.

Nun rundest Du diese Werte. Der effektive Einzelwert ist dann die Differenz zum gerundeten Vorgängerwert:

  • F1 = round(H1), Fn=round(Hn)-F(n-1).

Dann stimmt die Summe, wobei zwischendurch manchmal „falsch“ gerundet wird. Im Idealfall passiert das bei großen Werten, weil das dort einen kleineren relativen Fehler produziert. Wenn dir Deine Ergebnisse nicht gefallen, kannst Du die Zeilen (ohne Spalte H) so umsortieren, dass die großen Kommazahlen in den Zeilen mit falscher Rundung liegen.

...zur Antwort

Schau Dir mal DraconiusGo an. Das Spiel wurde dem ursprünglichen Pokémon go nachempfunden, hat aber viele Dinge anders oder neu gemacht.

Arenen und andere Gebäude gibt es nicht nur an Sehenswürdigkeiten in der Stadt, sondern sind überall zufällig verteilt. Du kannst also auch auf einem Feld-Wald-Wiesen-Spaziergang spielen.

Das Spiel hat schon lange keinen Update mehr bekommen, und die Mitspieler sind recht dünn im Land verteilt. Wettkämpfe oder soziale Interaktionen wirst Du also vielleicht etwas vermissen. Aber für Jäger und Sammler erfüllt es seinen Zweck.

...zur Antwort
Stimmt diese Planetenlaufbahn-Approximation?

Heyy ich versuche seit einiger Zeit mit Python eine Animation für die Laufbahn von der Erde zu erstellen, aber ich wundere mich, ob mein Ansatz stimmt. 🤔

Ich will ein Python Programm erstellen, wo ich den Exponenten des Radius im Gravitationsgesetz ändern und somit neue Umlaufbahnen zeichnen kann. Dabei stütze ich mich auf die Formel: F = G * (m1 * m2)/r^x. Ich bin mir nicht sicher, ob mein Programm korrekte Laufbahnen zeichnet, da ich nicht sonderlich gut in Physik bin. Der Grundgedanke kann ich nachvollziehen: Bei abnehmender Kraft, wird die Umlaufbahn grösser. Aber ist es normal, dass die Umlaufbahn der Erde bei einer kleinen Exponenten-Änderung von 2 auf 2.02 so viel grösser wird? Falls ja, warum ist das so?

Danke im Voraus für eure Hilfe! 😊

LG Leonie

Ein Quadrat entspricht hier einer astronomischen Einheit.

Hier ist mein Programm:

Ich verwende für meine Animation pygame.

import pygame
import sys
import math

Das sind die Konstanten, die ich verwende und die Startwerte:

G = 6.67430e-11
M_SUN = 1.989e30 
M_EARTH = 5.972e24
AU = 1.496e11
TIME_STEP = 43200
x = AU
y = 0
vx = 0
vy = 29780
exp_r = float(input"Exponent:"))

Die Erstellung des Fensters:

pygame.init()
WIDTH, HEIGHT = 800, 800
SCALE = WIDTH / (20 * AU)  # Maßstab für die Darstellung
screen = pygame.display.set_mode((WIDTH, HEIGHT))
clock = pygame.time.Clock()

Mit RK4 approximiere ich die Laufbahn der Erde. Hier sind die Funktionen:

def runge_kutta4(t, state, dt):
    k1 = deriv(t, state)
    k2 = deriv(t + 0.5 * dt, [state[i] + 0.5 * dt * k1[i] for i in range(4)])
    k3 = deriv(t + 0.5 * dt, [state[i] + 0.5 * dt * k2[i] for i in range(4)])
    k4 = deriv(t + dt, [state[i] + dt * k3[i] for i in range(4)])
    return [state[i] + (dt / 6) * (k1[i] + 2 * k2[i] + 2 * k3[i] + k4[i]) for i in range(4)]

def draw_grid():
    grid_size = AU * SCALE
    half_width = WIDTH // 2
    half_height = HEIGHT // 2
 
    for i in range(-19, 20):
        x_pos = int(half_width + i * grid_size)
        pygame.draw.line(screen, (50, 50, 50), (x_pos, 0), (x_pos, HEIGHT))
 
    for i in range(-19, 20):
        y_pos = int(half_height + i * grid_size)
        pygame.draw.line(screen, (50, 50, 50), (0, y_pos), (WIDTH, y_pos))

Hauptschleife:

running = True
t = 0
earth_path = []


while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    state = [x, y, vx, vy]
    x, y, vx, vy = runge_kutta4(t, state, TIME_STEP)
    t += TIME_STEP

    draw_x = int(WIDTH / 2 + x * SCALE)
    draw_y = int(HEIGHT / 2 + y * SCALE)
    earth_path.append((draw_x, draw_y))

    screen.fill((0, 0, 0))
    draw_grid()
    pygame.draw.circle(screen, (255, 255, 0), (WIDTH // 2, HEIGHT // 2), 20)
    pygame.draw.circle(screen, (0, 0, 255), (draw_x, draw_y), 5)

    for px, py in earth_path:
        pygame.draw.circle(screen, (0, 255, 0), (px, py), 1)

    pygame.display.flip()
    clock.tick(60)

pygame.quit()
sys.exit()
...zum Beitrag

Mich überrascht das nicht: Beim Exponenten 2.02 hast Du nur noch 60% Anziehungskraft, bei 2.03 nur noch 46%. Kein Wunder, dass sich die Erde da aus dem Staub macht.

Gib ihr wenigstens eine Chance auf eine stabile Umlaufbahn, indem Du sie langsamer machst, näher an die Sonne rückst oder G erhöhst.

...zur Antwort

Das ist ganz anschaulich: Du hast die grüne Funktion y=N/x und suchst deren Fixpunkt (=Schnitt mit der roten Diagonalen):

⠀⠀⠀⠀ Bild zum Beitrag

In jeder Iteration hast Du eine Näherung xₙ und xₙ₊₁=N/xₙ. Die schwarzen Rechtecke haben beide die Fläche N. Der Fixpunkt liegt knapp unter der Mitte von xₙ und xₙ₊₁. Tatsächlich ist der Fixpunkt das geometrische Mittel aus xₙ und xₙ₊₁. Wenn Du das berechnen kannst, brauchst Du das Heronverfahren gar nicht. Ansonsten ist das arithmetische Mittel hier als Näherung xₙ₊₂ recht „naheliegend“, denn die grüne Kurve hat im Fixpunkt die Steigung −1.

Weder Herr Heron noch ich haben eine Idee, wie man mit einfachen Mitteln eine noch bessere Näherung xₙ₊₂ bestimmen könnte. „Mit einfachen Mitteln“ heißt: weniger Rechenaufwand und eine bessere Näherung als k Heron-Schritte.

Anfangs weicht das arithmetische Mittel zwar noch deutlich vom geometrischen ab, aber das Verfahren konvergiert so schnell, dass sich eine Optimierung auch da nicht lohnt.

...zur Antwort
5-19

Ich kenne alle Dezimalstellen von π -- nur bei deren Reihenfolge bin ich mir unsicher ;-)

...zur Antwort

Bei FAT16 kann jedes Verzeichnis nur 512 Dateien enthalten. Du brauchst also viele Unterverzeichnisse – oder besser ein anderes Dateisystem. Was spricht denn gegen ext4?

...zur Antwort

In der ersten Zeile steht eine Summe mit 2⁺¹−1 Summanden. Davon packst Du immer 2 Stück in einen Wert zusammen (also den ersten Summanden allein, dann die nächsten 2, dann 4, 8, ..., 2).

Jedes dieser m+1 Päckchen wird durch seine Länge 2 mal seinen ersten (=größten) Summanden 1/2ᵏ nach oben abgeschätzt. Das ergibt die Summe in der zweiten Zeile.

...zur Antwort

Aus 5 Einheitsquadraten kannst Du ein Quadrat mit Seitenlänge √5 bauen:

Bild zum Beitrag

Hier siehst Du schnell, wie Du die gegebene Figur mit zwei parallelen Schnitten in drei passende Teile zerlegen kannst, um dieses Quadrat zu legen.

Für die zweite Lösung musst Du etwas mehr knobeln. Viel Spaß!

...zur Antwort

Ich nehme an, dass es hier um zwei konische Rohre geht, die ineinander laufen. Am besten schneidest Du das Stück erst wie ein Brötchen auf und trennst das Oberteil dann an der c3-Linie. Ein solches Stück musst Du dann als 3d-Funktion z=f(x, y) darstellen und dessen Fläche berechnen (und diese dann ×4 nehmen).

Die Oberfläche hängt aber von der genauen Form des Rohres ab:

1) Am einfachsten ist wohl ein Kegelstumpf um die grüne Achse. Das Problem dabei ist, dass der schräge Schnitt bei d1 kein Kreis, sondern eine Ellipse ist. Wenn die aber den Umfang π·d1 hat, kann man das Rohr (ohne Änderung seiner Oberfläche) leicht zusammendrücken, um die Öffnung (fast) kreisförmig zu machen. Exakt berechnen kann man das zwar nicht, aber man sollte für kleines w zumindest eine sehr gute Näherungsformel bekommen.

2) Alternativ kannst Du eine Funktion basteln, die den Halbkreis bei d1 irgendwie mit dem (leicht verdrehten) Halbkreis bei d2 verbindet. Ich würde das 1:1 über den Winkel am Kreis machen, sprich die grüne Oberkante auf beiden Halbkreisen in 1°-Schritten auf beide Seiten bis ±90° drehen. Das wird zwar wieder eine Fläche ergeben, die nur numerisch integriert werden kann, aber der Rechenaufwand dürfte sich in Grenzen halten, weil man ja nur Trapeze mit konstanter Unter- und Oberkante addieren muss.

3) ... ?

Bei allen Ansätzen kommt erschwerend hinzu, dass die gesuchte Fläche an der c3-Linie abgeschnitten werden muss. Da sehe ich bei 1) kein Land. Bei 2) braucht man etwas Trigonometrie. Mein Favorit ist also 3). Dumm nur, dass ich nicht drauf komme ;-)

Gib mir genauere Information zur Form der Rohre, dann helfe ich Dir bei den passenden (Näherungs-)Formeln.

...zur Antwort

Laut Duden regiert „für bis zu“ den Akkusativ (siehe Antwort von NorbertWilhelm).

Aber beim genaueren Hinsehen vermisse ich eine Angabe, was beantragt wird, denn einen Zeitraum zu beantragen ist ziemlich sinnfrei. Und diese Angabe müsste dann im Akkusativ stehen, während dessen Attribut „bis zu ...“ den Dativ regiert:

  • Ich stelle ein Antrag für bis zu einem Tag (Dat) Urlaub (Akk).

Wenn der „Antrag für Urlaub“ zuvor schon erwähnt wurde, kann man den „Urlaub“ weglassen. Der Dativ kann dann aber bleiben. Vergleiche:

  • Antrag für bis zu einem Tag [Urlaub]
  • Antrag für bis zu einen [Urlaubs-]Tag
...zur Antwort

Die linke (und die rechte Hälfte) sind jeweils punktsymmetrisch, weil alle Parabeln die gleiche Öffnung a haben. Der Schnittpunkt liegt also genau in der Mitte bei (±125; 7,5). Damit findest Du (durch einsetzen in die mittlere Parabel y=ax²)

  • a = 7,5 / 125²

Die drei Parabeln sind also:

  • y=ax² und
  • y=a(x±250)²+15

Du kannst das prüfen, indem Du diese Parabeln miteinander schneidest. Und falls Du nicht glaubst, dass hier ein einziger Schnittpunkt ein Berührpunkt sein muss, kannst Du auch die Ableitungen an den Schnittpunkten vergleichen.

...zur Antwort

Nimm einfach die hessesche Normalform von E (d. h. teile die Gleichung durch 3), und setze den Kugelradius r als Abstand zum Ursprung (=Kugelmittelpunkt) ein. Es gibt zwei solche Ebenen:

(⅓ ⅔, −⅔)OX = ±r

...zur Antwort
C Programm funktioniert nicht Richtig?

Es geht um folgenden Code:

#include <gtk/gtk.h>
#include <string.h>
// Globale Variablen für die UI-Elemente
GtkWidget *search_entry;
GtkWidget *treeview;
GtkListStore *list_store;
GtkTreeModel *filter_model;
// Beispiel-Lagerbestand
typedef struct {
  const gchar *artikelnummer;
  const gchar *name;
  int bestand;
} Lagerartikel;
// Beispielhafte Lagerartikel
Lagerartikel lager[] = {
  {"1001", "Laptop", 15},
  {"1002", "Maus", 50},
  {"1003", "Tastatur", 30},
  {"1004", "Monitor", 10},
  {"1005", "Drucker", 5},
  {"1006", "USB-Stick", 100}
};
const int lager_size = sizeof(lager) / sizeof(lager[0]);
// Filterfunktion für die Suche
static gboolean filter_func(GtkTreeModel *model, GtkTreeIter *iter, gpointer data) {
  gchar *artikelnummer = NULL;
  gtk_tree_model_get(model, iter, 0, &artikelnummer, -1);
  if (artikelnummer == NULL) {
    return TRUE;
  }
  GtkWidget *search_entry = GTK_WIDGET(data);
  const gchar *search_text = gtk_entry_get_text(GTK_ENTRY(search_entry));
  if (search_text == NULL) {
    search_text = "";
  }
  gboolean visible = TRUE;
  if (strlen(search_text) > 0) {
    visible = g_strrstr(artikelnummer, search_text) != NULL;
  }
  g_free(artikelnummer);
  return visible;
}
// Aktualisiert den Filter, wenn sich der Suchtext ändert
static void on_search_changed(GtkSearchEntry *entry, gpointer user_data) {
  gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(filter_model));
}
// Erstellt die Lagerbestand-Tabelle
static void setup_treeview(GtkBuilder *builder) {
  treeview = GTK_WIDGET(gtk_builder_get_object(builder, "treeview"));
  // Spalten für die TreeView erstellen
  GtkCellRenderer *renderer = gtk_cell_renderer_text_new();
  GtkTreeViewColumn *col1 = gtk_tree_view_column_new_with_attributes("Artikelnummer", renderer, "text", 0, NULL);
  GtkTreeViewColumn *col2 = gtk_tree_view_column_new_with_attributes("Name", renderer, "text", 1, NULL);
  GtkTreeViewColumn *col3 = gtk_tree_view_column_new_with_attributes("Bestand", renderer, "text", 2, NULL);
  gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), col1);
  gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), col2);
  gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), col3);
  // ListStore erstellen und Daten füllen
  list_store = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT);
  for (int i = 0; i < lager_size; i++) {
    GtkTreeIter iter;
    gtk_list_store_append(list_store, &iter);
    gtk_list_store_set(list_store, &iter, 0, lager[i].artikelnummer, 1, lager[i].name, 2, lager[i].bestand, -1);
  }
  // Filtermodell erstellen
  filter_model = gtk_tree_model_filter_new(GTK_TREE_MODEL(list_store), NULL);
  gtk_tree_model_filter_set_visible_func(GTK_TREE_MODEL_FILTER(filter_model), filter_func, search_entry, NULL);
  gtk_tree_view_set_model(GTK_TREE_VIEW(treeview), filter_model);
}
// Hauptfunktion
int main(int argc, char *argv[]) {
  gtk_init(&argc, &argv);
  // Glade-Datei laden
  GtkBuilder *builder = gtk_builder_new_from_file("part1.glade");
  // Widgets abrufen
  GtkWidget *window = GTK_WIDGET(gtk_builder_get_object(builder, "main_window"));
  search_entry = GTK_WIDGET(gtk_builder_get_object(builder, "search_entry"));
  // Signal für die Suche
  g_signal_connect(search_entry, "search-changed", G_CALLBACK(on_search_changed), search_entry);
  g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
  // Setup für die TreeView
  setup_treeview(builder);
  // Fenster anzeigen
  gtk_widget_show_all(window);
  gtk_main();
  return 0;
}

Ich benutze Glade um mit c ein interface zu erstelle.
Hier sollen die definierten Lagerartikel nach den Artikelnummern gesucht werden. Wenn man etwa 1002 eingibt bleibt nur 1002 übrig. wenn ich jetzt aber die 2 wegnehme, bleibt nur 1002 und 1003 übrig, obwohl alle angezeigt werden sollten.

Jetzt ist meine Frage, wie ich das beheben kann.
Auch ist folgendes: Bei 1003 zu 100 kommt 1003, 1004, 1005. Bei 1004 zu 100 kommt 1004, 1005, 1006, genau das gleiche bei 1005 und 1006. Nur bei 1001 zu 100 kommt alles

...zum Beitrag

Offenbar wird on_search_changed() nicht oder zum falschen Zeitpunkt aufgerufen. Dann wird die Suche bei jeder Änderung nur eingeschränkt.

Hast Du in Glade wirklich ein Gtk.SearchEntry (mit find- und clear-Button) angelegt?Wenn ja, bau mal eine Ausgabe des Suchtextes in on_search_changed() ein. Erscheint da immer der aktuelle Suchtext?

...zur Antwort

Den Umkreisradius r bekommst Du aus den Dreiecksseiten via



Hast Du nun zwei neue Winkel 𝛼₂, 𝛽₂ (und damit 𝛾₂), kannst Du die neuen Seiten a₂, b₂ und c₂ berechnen, z. B.



(siehe Antwort von PMeindl).

Wenn Du stattdessen zwei neue Seiten a₂ und b₂ kennst, findest Du c₂ auch ohne Trigonometrie, indem Du die obige Gleichung für r nach c auflöst. Das ergibt eine (etwas hässliche) bi-quadratische Gleichung (mit zwei Lösungen für c²).

...zur Antwort

Korrekt fragen würdest Du mit „wann?“ bzw. „woran?“. Die Kombination Präposition+Fragewort klingt immer etwas unbeholfen und eignet sich bestenfalls, um gezielt ein nicht verstandenes Wort zu erfragen. Dabei fällt mir auf, dass hier – besonders beim Dativ und Genitiv – das Fragewort gern im Nominativ steht:

  • In was (statt wem) wohnte Diogenes? (korrekt: worin)
  • Von was (statt wem) redest Du? (korrekt: wovon)
  • Wegen was (statt wessen) regst Du dich so auf? (korrekt: weswegen, weshalb)

Entsprechend würde ich bei Deinen Beispielen „Während was, bitte?“ und „Anhand was, bitte?“ fragen – aber wirklich nur dann, wenn ich das entsprechende Wort nicht verstanden habe.

...zur Antwort