Wie schwer ist diese Aufgabe in Informatik?

2 Antworten

Hast du nicht letztes Jahr schon eine Frage zu Backtracking gestellt :D ?

Im Prinzip musst du wie mir scheint 3 Teile lösen:

  • Existenz bzw. Startpunkt der Zielperson herausfinden. Im Beispiel ist der Startpunkt (0,0) - vielleicht steht in den anderen Teilen etwas dazu, aber ansonsten würde ich annhemen, dass es keine bekannte Startposition gibt. Dann musst du diese über die town herausfinden - da wir dir Klasse nicht kennen ist es schwer zu beurteilen, aber im Worst Case musst du halt ein 2D Array nach der Person durchsuchen.
  • Das eigentliche Backtracking ist auch nicht so schwer, wenn man sowas schon mal implementiert hat. Man muss halt schauen, was die legalen Züge (den Ausschnitt sehen wir nicht) sind. Zusätzlich musst du die Randfälle beachten, dass du a) nicht zurück läufst, b) du nicht durch eine Barriere kommst und c) nicht out-of-bounds/durch die Stadtgrenze läufst.
  • Zur Berechnung der Virenlast steht in der Aufgabe nichts. Vermutlich musst du an jeder Position prüfen, ob andere Menschen auf der Kachel stehen und wie sehr du dich bei ihnen "infizierst". Das lässt sich gut in eine Helper Funktion auslagern

Insgesamt aber eine machbare Aufgabe. Falls du es auf Papier lösen musst, ist es etwas Fehleranfällig - da muss man sich halt grade bei Array Indizes konzentrieren

offensichtli249 
Fragesteller
 26.02.2022, 12:34

Bei euch war die Klausur Algorithmen und Programmierung leichter?

0
procoder42  26.02.2022, 17:01
@offensichtli249

Nein, die waren nicht leichter. Deine Aufgabe ist an sich nicht schwierig, man muss halt etwas mehr Code schreiben. Über Algorithmen muss man auch nicht viel wissen

0

Mitte/Ende 1. Semester. Grundlagen der Programmierung oder Grundlagen der Algorithmen und Datenstrukturen.

Nicht mehr ganz einfach, aber auch nichts hochkomplexes.

Woher ich das weiß:Studium / Ausbildung
offensichtli249 
Fragesteller
 26.02.2022, 10:57

Wie lange dauert die Loesung? max 1 Stunde?

0
triopasi  26.02.2022, 10:59
@offensichtli249

Kommt drauf an, was in der restlichen Aufgabenstellung schon gemacht wurde und was alles zur Verfügung steht. Genauso habe ich keine Ahnung was die "Virenlast" ist und wie sich diese berechnet.

Wenn du zum ersten Mal Backtracking implementierst kann das auch den ganzen Nachmittag/Abend dauern.

3
grtgrt  26.02.2022, 11:00
@offensichtli249

Kommt ganz darauf an, wie geschickt du bist. Musst halt einfach anfangen und erst aufhören, wenn die Aufgabe bewältigt ist. Anders wirst du nie lernen, solchen Aufgaben gewachsen zu sein.

3
offensichtli249 
Fragesteller
 26.02.2022, 11:01
@triopasi

Das war eine Aufgabe in einer Klausur.

Dieser Professor macht Aussieben scheinbar:D

0
triopasi  26.02.2022, 11:01
@offensichtli249

Wenn das aus einer Klausur ist, dann machst du es offensichtlich nicht zum ersten Mal. Hoffentlich. Dann sollte das in einer Stunde locker drin sein.

Es gibt übrigens auch die Einschränkung, dass es keine Kreise gibt. Das ist enorm hilfreich.

5
grtgrt  26.02.2022, 11:51
@offensichtli249

Die Schuld bei den Professoren zu suchen, hat noch nie geholfen. Es ist deren Pflicht, vor allem auch Dir selbst bewusst zu machen, an welchen Stellen du dich mehr bemühen musst, um mithalten zu können.

2
offensichtli249 
Fragesteller
 26.02.2022, 12:37
@grtgrt

Wie findest du diese Loesung?

<script>

// javascript code for solving inverse interpolation

// Consider a structure

// to keep each pair of

// x and y together

class Data {

  

constructor(x , y) {

this.x = x;

this.y = y;

}

};

// Function to calculate

// the inverse interpolation

function inv_interpolate( d , n , y)

{

// Initialize final x

var x = 0;

var i, j;

for (i = 0; i < n; i++) {

// Calculate each term

// of the given formula

var xi = d[i].x;

for (j = 0; j < n; j++) {

if (j != i) {

xi = xi * (y - d[j].y) / (d[i].y - d[j].y);

}

}

// Add term to final result

x += xi;

}

return x;

}

// Driver Code

// Sample dataset of 4 points

// Here we find the value

// of x when y = 4.5

var d = [ new Data(1.27, 2.3), new Data(2.25, 2.95), new Data(2.5, 3.5), new Data(3.6, 5.1) ];

// Size of dataset

var n = 4;

// Sample y value

var y = 4.5;

// Using the Inverse Interpolation

// function to find the

// value of x when y = 4.5

document.write("Value of x at y = 4.5 : ", inv_interpolate(d, n, y).toFixed(5));

// This code is contributed by gauravrajput1

</script>

0
grtgrt  26.02.2022, 12:40
@offensichtli249

Nimm's mir nicht übel, aber ich bin längst aus dem Alter heraus, in dem man sich mit solchen Details befasst.

0
Manischk  26.02.2022, 16:21
@triopasi

Was sind die anderen Fertigkeiten, die hier gefragt sind?

als Backtracking 

0