{
    "componentChunkName": "component---src-templates-docs-js",
    "path": "/veckoanvisningar/kursvecka-07/utmaningar",
    "result": {"data":{"site":{"siteMetadata":{"title":"Linnéuniversitetet","language":"sv","courseCode":"1dv025"}},"mdx":{"fields":{"id":"1a9f92b0-5296-50b1-b9f5-389e9571ade1","title":"Utmaningar","slug":"/veckoanvisningar/kursvecka-07/utmaningar"},"body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Utmaningar\",\n  \"metaTitle\": \"1DV025 | Utmaningar kursvecka 7\",\n  \"metaDescription\": \"metaDescription\",\n  \"order\": 4\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"Detta fredagsh\\xE4ng var lite annorlunda. Vi k\\xF6rde ingen \\\"peer instruction\\\" utan\\nhade en diskussion kring hur en lottorad med sju unika tal fr\\xE5n och ned 1\\ntill och med 35 kan skapas.\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-javasscript\"\n  }, \"/*\\n * Generates a \\\"lotto row\\\" consisting of seven random and unique numbers\\n * in the range from 1 to 35 (inclusive).\\n *\\n * @returns {number[]} An array of seven unique numbers representing a \\\"lotto row\\\".\\n */\\nfunction generateLottoRow1A() {\\n  // TODO: Create an algorithm that generates a \\\"lotto row\\\" with seven unique numbers.\\n  //       Implement the algorithm here!\\n}\\n\")), mdx(\"p\", null, \"Vi diskuterade fram ett antal olika algoritmer, som sammanst\\xE4lldes och n\\xE5gra av\\ndem implementerades direkt. Men n\\xE5gon djupare analys gjordes inte. Nedan f\\xF6ljer\\nen sammanst\\xE4llning av de algoritmer som diskuterades.\"), mdx(\"h2\", null, \"Algoritmer f\\xF6r att skapa en lottorad\"), mdx(\"p\", null, \"H\\xE4r f\\xF6ljer en \\xF6versikt av de algoritmer som diskuterades f\\xF6r att generera en\\nlottorad med sju unika tal fr\\xE5n 1 till 35.\"), mdx(\"h3\", null, \"Algoritmer och dess implementationer\"), mdx(\"h4\", null, \"Algoritm 1\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Initiera samling\")), mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Skapa en tom samling f\\xF6r att lagra de unika numren i lottoraden.\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Loop\")), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Upprepa f\\xF6ljande steg tills samlingen inneh\\xE5ller sju unika tal:\\na. Generera ett slumpm\\xE4ssigt heltal mellan 1 och 35.\\nb. Kontrollera om det slumpm\\xE4ssiga numret redan finns i samlingen.\\nc. Om numret inte finns i samlingen, l\\xE4gg till det.\"))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Returnera resultat\")), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"N\\xE4r samlingen inneh\\xE5ller sju unika tal, sortera numren i stigande\\nordning och returnera samlingen som representerar lottoraden.\")))), mdx(\"h5\", null, \"Implementationer\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-javascript\"\n  }, \"/**\\n * IMPLEMENTATION OF ALGORITHM #1 - ALTERNATIVE A\\n *\\n * Generates a \\\"lotto row\\\" consisting of seven random and unique numbers\\n * in the range from 1 to 35 (inclusive).\\n *\\n * @returns {number[]} An array of seven unique numbers representing a \\\"lotto row\\\".\\n */\\nfunction generateLottoRow1A() {\\n  // Skapa en tom array\\n  const lottoRow = []\\n\\n  // Upprepa tills sju unika tal \\xE4r i arrayen\\n  while (lottoRow.length < 7) {\\n    const randomNumber = Math.floor(Math.random() * 35) + 1\\n    if (!lottoRow.includes(randomNumber)) {\\n      lottoRow.push(randomNumber)\\n    }\\n  }\\n\\n  // Sortera arrayen och returnera\\n  return lottoRow.sort((a, b) => a - b)\\n}\\n\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-javascript\"\n  }, \"/**\\n * ALTERNATIVE IMPLEMENTATION OF ALGORITHM #1 - ALTERNATIVE B\\n *\\n * Generates a \\\"lotto row\\\" (play) consisting of seven random and unique numbers\\n * in the range from 1 to 35 (inclusive).\\n *\\n * @returns {number[]} - An array of seven unique numbers representing a \\\"lotto row\\\" (play).\\n */\\nfunction generateLottoRow1B () {\\n  // Skapa en tom m\\xE4ngd (set)\\n  const lottoSet = new Set()\\n\\n  // Upprepa tills 7 unika tal \\xE4r i samlingen\\n  while (lottoSet.size < 7) {\\n    const randomNumber = Math.floor(Math.random() * 35) + 1\\n    lottoSet.add(randomNumber)\\n  }\\n\\n  // Konvertera Set till en array, sortera och returnera\\n  return Array.from(lottoSet).sort((a, b) => a - b)\\n}\\n\")), mdx(\"h3\", null, \"Algoritm 2\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Initiera med alla m\\xF6jliga tal\")), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Skapa en samling med alla heltal fr\\xE5n 1 till 35.\"))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"F\\xF6rbered spelraden\")), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Skapa en ny, tom samling f\\xF6r att lagra de valda numren.\"))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"V\\xE4lj tal\")), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Upprepa f\\xF6ljande steg sju g\\xE5nger:\\na. Generera ett slumpm\\xE4ssigt index mellan 0 och samlingens l\\xE4ngd minus 1.\\nb. Anv\\xE4nd det genererade indexet f\\xF6r att v\\xE4lja ett tal fr\\xE5n samlingen.\\nc. L\\xE4gg det valda talet i samlingen f\\xF6r spelraden.\\nd. Ta bort det valda talet fr\\xE5n samlingen f\\xF6r m\\xF6jliga tal f\\xF6r att undvika dubbletter.\"))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Avsluta\")), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Sortera spelraden i stigande ordning och returnera samlingen.\")))), mdx(\"h4\", null, \"Implementationer\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-javascript\"\n  }, \"/**\\n * IMPLEMENTATION OF ALGORITHM #2 - ALTERNATIVE A\\n *\\n * Generates a \\\"lotto row\\\" consisting of seven random and unique numbers\\n * in the range from 1 to 35 (inclusive).\\n *\\n * @returns {number[]} An array of seven unique numbers representing a \\\"lotto row\\\".\\n */\\nfunction generateLottoRow2A () {\\n  // Initiera array med alla m\\xF6jliga tal\\n  const availableNumbers = []\\n  for (let i = 1 i <= 35 i++) {\\n    availableNumbers.push(i)\\n  }\\n\\n  // F\\xF6rbered array f\\xF6r spelraden\\n  const lottoRow = []\\n\\n  // V\\xE4lj tal\\n  for (let i = 0 i < 7 i++) {\\n    // Generera ett slumpm\\xE4ssigt index\\n    const randomIndex = Math.floor(Math.random() * availableNumbers.length)\\n\\n    // V\\xE4lj och l\\xE4gg till talet i spelraden\\n    lottoRow.push(availableNumbers[randomIndex])\\n\\n    // Ta bort det valda numret f\\xF6r att undvika dubbletter\\n    availableNumbers.splice(randomIndex, 1)\\n  }\\n\\n  // Sortera i stigande ordning och returnera\\n  return lottoRow.sort((a, b) => a - b)\\n}\\n\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-javascript\"\n  }, \"/**\\n * ALTERNATIVE IMPLEMENTATION OF ALGORITHM #2 - ALTERNATIVE B\\n *\\n * Generates a \\\"lotto row\\\" consisting of seven random and unique numbers\\n * in the range from 1 to 35 (inclusive).\\n *\\n * @returns {number[]} An array of seven unique numbers representing a \\\"lotto row\\\".\\n */\\nfunction generateLottoRow2B () {\\n  // Initiera en array med alla tal fr\\xE5n 1 till 35\\n  const availableNumbers = Array.from({ length: 35 }, (_, i) => i + 1)\\n\\n  // Anv\\xE4nd en array f\\xF6r att lagra spelraden\\n  const lottoRow = []\\n\\n  // V\\xE4lj tal\\n  for (let i = 0 i < 7 i++) {\\n    // Slumpa ett index\\n    const randomIndex = Math.floor(Math.random() * availableNumbers.length)\\n\\n    // Ta numret och l\\xE4gg till i spelraden\\n    const chosenNumber = availableNumbers[randomIndex]\\n    lottoRow.push(chosenNumber)\\n\\n    // Ta bort numret f\\xF6r att undvika duplicering\\n    availableNumbers.splice(randomIndex, 1)\\n  }\\n\\n  // Sortera i stigande ordning och returnera\\n  return lottoRow.sort((a, b) => a - b)\\n}\\n\")), mdx(\"h3\", null, \"Algoritm 3\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Initiera med alla m\\xF6jliga tal\")), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Skapa en samling med alla heltal fr\\xE5n och med 1 till och med 35.\"))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Blanda de m\\xF6jliga numren\")), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Anv\\xE4nd \\\"Fischer-Yates Shuffle\\\" f\\xF6r att slumpm\\xE4ssigt ordna samlingen s\\xE5 att\\nde sju sista numren blir slumpm\\xE4ssiga.\"))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Avsluta\")), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Ta de sista sju numren fr\\xE5n samlingen.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Sortera dessa sju tal i stigande ordning och returnera dem.\")))), mdx(\"h4\", null, \"Implementationer\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-javascript\"\n  }, \"function generateLottoRow3A() {\\n  // Initiera array med alla m\\xF6jliga tal\\n  const numbers = []\\n  for (let i = 1 i <= 35 i++) {\\n    numbers.push(i)\\n  }\\n\\n  // Blanda de sista sju numren med Fischer-Yates Shuffle\\n  for (let shufflingIndex = numbers.length - 1 shufflingIndex > numbers.length - 8 shufflingIndex--) {\\n    const selectedIndex = Math.floor(Math.random() * (shufflingIndex + 1))\\n\\n    // Byt plats p\\xE5 elementen\\n    var temp = numbers[shufflingIndex]\\n    numbers[shufflingIndex] = numbers[selectedIndex]\\n    numbers[selectedIndex] = temp\\n  }\\n\\n  // Ta de sista sju numren och returnera dem sorterade\\n  return numbers\\n    .slice(numbers.length - 7)\\n    .sort((a, b) => a - b)\\n}\\n\")), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-javascript\"\n  }, \"function generateLottoRow3B() {\\n  // Initiera array med alla m\\xF6jliga tal\\n  const numbers = Array.from({ length: 35 }, (_, i) => i + 1)\\n\\n  // Blanda de sista sju numren med Fisher-Yates Shuffle\\n  for (let shufflingIndex = numbers.length - 1 shufflingIndex > numbers.length - 8 shufflingIndex--) {\\n    const selectedIndex = Math.floor(Math.random() * (shufflingIndex + 1))\\n\\n    // Byt plats p\\xE5 elementen med destruktiv tilldelning\\n    ;[numbers[shufflingIndex], numbers[selectedIndex]] = [numbers[selectedIndex], numbers[shufflingIndex]]\\n  }\\n\\n  // Ta de sista sju numren och returnera dem sorterade\\n  return numbers\\n    .slice(numbers.length - 7)\\n    .sort((a, b) => a - b)\\n}\\n\")), mdx(\"h3\", null, \"\\xD6vergripande f\\xF6rklaring av implementationerna\"), mdx(\"p\", null, \"Nedan f\\xF6ljer en j\\xE4mf\\xF6relse av de tre algoritmerna och deras respektive implementationer.\"), mdx(\"h4\", null, \"Algoritm 1\"), mdx(\"h5\", null, \"Alternativ A (1A)\"), mdx(\"p\", null, \"Denna implementation anv\\xE4nder en enkel array f\\xF6r att lagra de unika numren i\\nlottoraden. En \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"while\"), \"-sats anv\\xE4nds f\\xF6r att generera slumpm\\xE4ssiga tal tills\\nsju unika tal har samlats. De sorteras d\\xE4refter i stigande ordning.\"), mdx(\"h5\", null, \"Alternativ B (1B)\"), mdx(\"p\", null, \"H\\xE4r anv\\xE4nds ett \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"Set\"), \"-objekt f\\xF6r att lagra unika tal utan manuell kontroll av\\ndubbletter. N\\xE4r \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"Set\"), \"-objektet inneh\\xE5ller sju unika tal, konverteras det till\\nen array, som sedan sorteras och returneras.\"), mdx(\"h4\", null, \"Algoritm 2\"), mdx(\"h4\", null, \"Alternativ A (2A)\"), mdx(\"p\", null, \"Denna metod skapar en array med tal fr\\xE5n 1 till 35. Med hj\\xE4lp av en\\n\", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"for\"), \"-sats v\\xE4ljs slumpm\\xE4ssiga tal som sedan l\\xE4ggs till i en ny array, vilket\\ns\\xE4kerst\\xE4ller att varje tal \\xE4r unikt genom att ta bort den efter varje val.\"), mdx(\"h5\", null, \"Alternativ B (2B)\"), mdx(\"p\", null, \"Liknar alternativ A, men anv\\xE4nder \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"Array.from\"), \" f\\xF6r att initiera arrayen, vilket\\ng\\xF6r processen mer kompakt och modern. Numren hanteras d\\xE4refter p\\xE5 samma s\\xE4tt som\\ni 2A.\"), mdx(\"h4\", null, \"Algoritm 3\"), mdx(\"h5\", null, \"Alternativ A (3A)\"), mdx(\"p\", null, \"Den traditionella Fischer-Yates-algoritmen blandar hela listan genom att iterera\\nfr\\xE5n 1 till 35 och trycka in varje tal i en array. Sedan blandas listan genom\\nett byte med en tempor\\xE4r variabel. Efter slumpm\\xE4ssig blandning av de sju sista\\nelementens inneh\\xE5ll tas de sista sju talen.\"), mdx(\"h5\", null, \"Alternativ B (3B)\"), mdx(\"p\", null, \"Den moderna varianten anv\\xE4nder \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"Array.from\"), \" f\\xF6r initiering och destruktiv\\ntilldelning f\\xF6r elementbyte, vilket g\\xF6r koden mer kompakt. Metoden \\xE4r effektiv\\noch avslutar med att ta de sista sju talen.\"), mdx(\"h3\", null, \"J\\xE4mf\\xF6relse av algoritmer\"), mdx(\"p\", null, \"H\\xE4r \\xE4r en j\\xE4mf\\xF6relse av de tre algoritmerna och deras implementationer baserat\\np\\xE5 effektivitet, prestanda och anv\\xE4ndbarhet.\"), mdx(\"h4\", null, \"Generering av unika tal\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Algoritm 1:\"), \" F\\xF6rlitar sig p\\xE5 slumpm\\xE4ssigt valda tal, och l\\xE4gger till dem\\nendast om de \\xE4r nya. Detta kan leda till fler iterationer, s\\xE4rskilt om samma\\ntal genereras upprepade g\\xE5nger, vilket p\\xE5verkar effektiviteten.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Algoritm 2:\"), \" \\xC4r deterministisk och k\\xF6r exakt sju iterationer, effektivt och\\nf\\xF6ruts\\xE4gbart tack vare en f\\xF6rminskande array. Dubbletter undviks aktivt.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Algoritm 3:\"), \" Anv\\xE4nder \\\"Fisher-Yates Shuffle\\\" f\\xF6r att s\\xE4kerst\\xE4lla slumpm\\xE4ssiga\\noch unika tal. Genom delvis blandning av arrayen s\\xF6rjer den f\\xF6r unika val\\nutan att beh\\xF6va blanda hela listan.\"), mdx(\"h4\", null, \"Effektivitet och prestanda\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Algoritm 1:\"), \" Kan vara l\\xE5ngsammare om m\\xE5nga dubbletter genereras innan sju\\nunika tal samlas. \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"Set\"), \"-objektet hj\\xE4lper d\\xE4rmed till att effektivisera\\nprocessen i 1B.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Algoritm 2:\"), \" \\xC4r deterministisk, snabb och konsekvent genom sina sex exakta\\niterationer, ideal f\\xF6r enkel och effektiv hantering av antal.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Algoritm 3:\"), \" \\xC4r deterministisk i sin blandning och s\\xE4kerst\\xE4ller en j\\xE4mn\\ndistribution. Speciellt \\xE4r 3B utrustad med modern syntax f\\xF6r b\\xE4ttre effektivitet\\nvid byte av element.\"), mdx(\"h3\", null, \"Anv\\xE4ndningsfall\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Algoritm 1:\"), \" Flexibel i dynamiska scenarier med ok\\xE4nt antal m\\xF6jliga tal.\\nPerfekt d\\xE4r unika restriktioner skiftar.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Algoritm 2:\"), \" Perfekt f\\xF6r statiska, v\\xE4ldefinierade listor med tal som beh\\xF6ver\\nsnabb bearbetning utan dubbletter.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Algoritm 3:\"), \" Optimal f\\xF6r fasta, k\\xE4nda upps\\xE4ttningar d\\xE4r slumpm\\xE4ssighet och\\nr\\xE4ttvis f\\xF6rdelning via blandning \\xF6nskas.\"), mdx(\"h4\", null, \"Sammanfattning\"), mdx(\"p\", null, \"Algoritm 1 erbjuder flexibiliteten att dynamiskt generera tal utan en\\nf\\xF6rutbest\\xE4md array med tal, vilket kan vara anv\\xE4ndbart n\\xE4r m\\xE4ngden\\npotentiella tal inte \\xE4r k\\xE4nd i f\\xF6rv\\xE4g. Den kan dock sakna effektivitet vid\\nm\\xE5nga iterationer p\\xE5 grund av risken f\\xF6r att generera dubbletter.\"), mdx(\"p\", null, \"B\\xE5de algoritm 2 och 3 erbjuder deterministiska s\\xE4tt att v\\xE4lja unika,\\nslumpm\\xE4ssiga tal. Algoritm 2 \\xE4r idealisk f\\xF6r dess enkelhet och\\nf\\xF6ruts\\xE4gbarhet, vilket g\\xF6r den l\\xE4mplig f\\xF6r snabba, repetitiva urvalsprocesser\\nd\\xE4r snabbhet och enkelhet \\xE4r prioritet. Algoritm 3 \\xE4r utm\\xE4rkt n\\xE4r en fullst\\xE4ndig\\noch korrekt distribution av slumpm\\xE4ssiga val \\xE4r kritisk, vilket g\\xF6r den idealisk\\nf\\xF6r anv\\xE4ndning d\\xE4r kvalitativ slumpm\\xE4ssighet och r\\xE4ttvis distribution av val \\xE4r\\nav yttersta betydelse. Algoritm 2 och 3 \\xE4r allts\\xE5 mer lika i deras\\ndeterministiska natur, men v\\xE4ljs beroende p\\xE5 i vilken omfattning kvaliteten av\\nslumpm\\xE4ssighet \\xE4r viktig.\"));\n}\n;\nMDXContent.isMDXComponent = true;","tableOfContents":{"items":[{"url":"#algoritmer-för-att-skapa-en-lottorad","title":"Algoritmer för att skapa en lottorad","items":[{"url":"#algoritmer-och-dess-implementationer","title":"Algoritmer och dess implementationer","items":[{"url":"#algoritm-1","title":"Algoritm 1","items":[{"url":"#implementationer","title":"Implementationer"}]}]},{"url":"#algoritm-2","title":"Algoritm 2","items":[{"url":"#implementationer-1","title":"Implementationer"}]},{"url":"#algoritm-3","title":"Algoritm 3","items":[{"url":"#implementationer-2","title":"Implementationer"}]},{"url":"#övergripande-förklaring-av-implementationerna","title":"Övergripande förklaring av implementationerna","items":[{"url":"#algoritm-1-1","title":"Algoritm 1","items":[{"url":"#alternativ-a-1a","title":"Alternativ A (1A)"},{"url":"#alternativ-b-1b","title":"Alternativ B (1B)"}]},{"url":"#algoritm-2-1","title":"Algoritm 2"},{"url":"#alternativ-a-2a","title":"Alternativ A (2A)","items":[{"url":"#alternativ-b-2b","title":"Alternativ B (2B)"}]},{"url":"#algoritm-3-1","title":"Algoritm 3","items":[{"url":"#alternativ-a-3a","title":"Alternativ A (3A)"},{"url":"#alternativ-b-3b","title":"Alternativ B (3B)"}]}]},{"url":"#jämförelse-av-algoritmer","title":"Jämförelse av algoritmer","items":[{"url":"#generering-av-unika-tal","title":"Generering av unika tal"},{"url":"#effektivitet-och-prestanda","title":"Effektivitet och prestanda"}]},{"url":"#användningsfall","title":"Användningsfall","items":[{"url":"#sammanfattning","title":"Sammanfattning"}]}]}]},"parent":{"relativePath":"veckoanvisningar/kursvecka-07/utmaningar.md"},"frontmatter":{"metaTitle":"1DV025 | Utmaningar kursvecka 7","metaDescription":"metaDescription","fullWidth":null}},"allMdx":{"edges":[{"node":{"fields":{"slug":"/examinationsuppgifter","title":"Examinationsuppgifter"}}},{"node":{"fields":{"slug":"/samlingar","title":"Samlingar"}}},{"node":{"fields":{"slug":"/","title":"Webbprogrammering på klientsidan (1DV025) - en kurs med JavaScript i fokus"}}},{"node":{"fields":{"slug":"/sandbox/basic-elements","title":"Basic elements"}}},{"node":{"fields":{"slug":"/sandbox/code","title":"Code"}}},{"node":{"fields":{"slug":"/sandbox/exercise","title":"Exercises"}}},{"node":{"fields":{"slug":"/sandbox/frontmatter","title":"Frontmatter"}}},{"node":{"fields":{"slug":"/sandbox/hint","title":"Hint"}}},{"node":{"fields":{"slug":"/sandbox","title":"Sandbox"}}},{"node":{"fields":{"slug":"/sandbox/markdown-import","title":"Imported markdown"}}},{"node":{"fields":{"slug":"/sandbox/mermaid","title":"Mermaid"}}},{"node":{"fields":{"slug":"/sandbox/tabs","title":"Tabs"}}},{"node":{"fields":{"slug":"/sandbox/youtube","title":"YouTube"}}},{"node":{"fields":{"slug":"/studieguide/examination","title":"Examination"}}},{"node":{"fields":{"slug":"/studieguide/forvantningar","title":"Förväntningar"}}},{"node":{"fields":{"slug":"/studieguide","title":"Studieguide"}}},{"node":{"fields":{"slug":"/studieguide/kommunikationsstrategi","title":"Kommunikationsstrategi"}}},{"node":{"fields":{"slug":"/studieguide/kursledning","title":"Kursledning"}}},{"node":{"fields":{"slug":"/studieguide/kursvardering","title":"Kursvärdering"}}},{"node":{"fields":{"slug":"/studieguide/larresurser","title":"Lärresurser"}}},{"node":{"fields":{"slug":"/studieguide/registrering","title":"Registrering"}}},{"node":{"fields":{"slug":"/studieguide/valkommen","title":"🎉 Välkommen!"}}},{"node":{"fields":{"slug":"/veckoanvisningar","title":"Veckoanvisningar"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-a/a1","title":"A1 - Online-test"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-a/a3-tjugoett","title":"A3 - Tjugoett"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-a","title":"Delkurs A"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-a/a2-beskrivande-statistik","title":"A2 - Beskrivande statistik"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-b/b1","title":"B1 - Online-test"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-b","title":"Delkurs B"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-b/b2","title":"B2 - The Quiz app"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/om","title":"Om examination"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/om/kom-igang","title":"Kom igång med en uppgift"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/om/inlamning-via-mr","title":"Inlämning via Merge request"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/om/muntlig-examination","title":"Muntlig examination"}}},{"node":{"fields":{"slug":"/samlingar/delkurs-a/guider","title":"Guider"}}},{"node":{"fields":{"slug":"/samlingar/delkurs-a","title":"Delkurs A"}}},{"node":{"fields":{"slug":"/samlingar/delkurs-a/ovningar","title":"Övningar"}}},{"node":{"fields":{"slug":"/samlingar/delkurs-a/inspelningar","title":"Stödjande inspelningar"}}},{"node":{"fields":{"slug":"/samlingar/delkurs-b/ovningar","title":"Övningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-01/guide-nodejs","title":"Guide - Node.js"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-01","title":"Kursvecka 1 - Satser"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-01/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-01/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-01/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/guide-ovningsuppgifter","title":"Guide - Övningsuppgift"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/guide-vscode","title":"Guide - VSCode"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02","title":"Kursvecka 2 - Funktioner, moduler"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/delkurs-b/b3","title":"B3 - PWD"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/examinationsuppgift","title":"Guide - Examinationsuppgift"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03","title":"Kursvecka 3 - Styrstrukturer"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/guide-jsdoc","title":"Guide - JSDoc"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-04","title":"Kursvecka 4 - Arrayer"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-04/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-04/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-04/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-04/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05","title":"Kursvecka 5 - Objekt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-06","title":"Kursvecka 6 - Klasser"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-06/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-06/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-06/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-06/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-07","title":"Kursvecka 7 - Arv"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-07/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-07/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-07/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-07/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-08","title":"Kursvecka 8 - Webbläsaren"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-08/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-08/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-08/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-08/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-09","title":"Kursvecka 9 - HTML-element"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-09/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-09/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05/guide-jest-spec-name","title":"Guide - Så gör du när du inte vill köra alla tester varje gång"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-09/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-09/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-10","title":"Kursvecka 10 - Webbkomponenter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-10/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-10/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-10/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-11","title":"Kursvecka 11 - Händelser"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-11/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-11/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-11/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-11/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-12","title":"Kursvecka 12 - AsyncAwait"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-12/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-12/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-12/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-12/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-13","title":"Kursvecka 13 - Komposition"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-13/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-13/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-13/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-14","title":"Kursvecka 14 - Lagring"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-14/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-14/ovningsuppgifter","title":"Övningsuppgifter"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-14/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-14/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-15","title":"Kursvecka 15 - Installerbara PWAs"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-15/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-15/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-15/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-16","title":"Kursvecka 16 - Pålitliga PWAs"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-16/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-16/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-16/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-17-19","title":"Kursvecka 17-19 - Kapabla PWAs"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-17-19/lasanvisningar","title":"Läsanvisningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-17-19/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-17-19/utmaningar","title":"Utmaningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-20","title":"Kursvecka 20 - Examination"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-20/oversikt","title":"Översikt"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/om/resurser/kom-igang","title":"Kom Igang"}}},{"node":{"fields":{"slug":"/examinationsuppgifter/om/resurser/mr","title":"Mr"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-01/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/git-guider/00-om-git","title":"Introduction"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/git-guider/10-git","title":"Setting Up"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/git-guider/12-commit-messages","title":"Commits best practice"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/git-guider/12-multipla-datorer","title":"Multiple computers"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/git-guider/14-multiple-git-user-configs","title":"Multiple Git User Configs"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/git-guider/16-ssh-troubleshoot","title":"SSH-keys troubleshooting"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/git-guider/20-detta-hander-vid-git-kommandon","title":"Detta händer vid git-kommandon"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/git-guider","title":"Guide - Git versionshantering"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-02/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-03/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-04/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-04/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-05/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-06/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-06/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-07/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-07/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-08/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-08/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-09/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-09/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-10/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-10/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-11/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-11/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-12/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-12/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-13/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-13/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-14/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-14/resurser/ovningar","title":"Ovningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-15/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-16/resurser/inspelningar","title":"Inspelningar"}}},{"node":{"fields":{"slug":"/samlingar/delkurs-b","title":"Delkurs B"}}},{"node":{"fields":{"slug":"/samlingar/delkurs-b/inspelningar","title":"Stödjande inspelningar"}}},{"node":{"fields":{"slug":"/veckoanvisningar/kursvecka-17-19/resurser/inspelningar","title":"Inspelningar"}}}]}},"pageContext":{"id":"1a9f92b0-5296-50b1-b9f5-389e9571ade1"}},
    "staticQueryHashes": ["253607798","3706406642","710574383"]}