Mathspace Ultimate Solver

Extracts, analyzes, and correctly solves Mathspace questions

Versione datata 13/02/2025. Vedi la nuova versione l'ultima versione.

Dovrai installare un'estensione come Tampermonkey, Greasemonkey o Violentmonkey per installare questo script.

You will need to install an extension such as Tampermonkey to install this script.

Dovrai installare un'estensione come Tampermonkey o Violentmonkey per installare questo script.

Dovrai installare un'estensione come Tampermonkey o Userscripts per installare questo script.

Dovrai installare un'estensione come ad esempio Tampermonkey per installare questo script.

Dovrai installare un gestore di script utente per installare questo script.

(Ho già un gestore di script utente, lasciamelo installare!)

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione come ad esempio Stylus per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

Dovrai installare un'estensione per la gestione degli stili utente per installare questo stile.

(Ho già un gestore di stile utente, lasciamelo installare!)

// ==UserScript==
// @name         Mathspace Ultimate Solver
// @namespace    http://tampermonkey.net/
// @version      4.0
// @description  Extracts, analyzes, and correctly solves Mathspace questions
// @author       You
// @match        *://*.mathspace.co/*
// @grant        none
// @require      https://cdnjs.cloudflare.com/ajax/libs/mathjs/11.9.0/math.min.js
// ==/UserScript==

(function() {
    'use strict';

    function getQuestionText() {
        let questionElement = document.querySelector('[data-testid="question-content"]'); // Adjust if needed
        if (questionElement) {
            return questionElement.innerText.trim();
        }
        return null;
    }

    function formatMathExpression(expression) {
        return expression
            .replace(/×/g, '*')       // Convert multiplication
            .replace(/÷/g, '/')       // Convert division
            .replace(/\^/g, '**')     // Convert exponents
            .replace(/([a-zA-Z])(\d+)/g, '$1^$2')  // Convert "n4" to "n^4"
            .replace(/(\d+)\s*\/\s*(\d+)/g, '($1/$2)'); // Convert fractions
    }

    function solveMathQuestion(expression) {
        try {
            let formattedExpression = formatMathExpression(expression);
            let answer = math.simplify(formattedExpression).toString();
            return answer;
        } catch (error) {
            console.error("Error solving the equation:", error);
            return "Error";
        }
    }

    function displayAnswer() {
        let questionText = getQuestionText();

        if (questionText) {
            console.log("Extracted Question:", questionText); // Debugging
            let answer = solveMathQuestion(questionText);
            alert("Correct Answer: " + answer);
            console.log("Correct Answer:", answer);
        } else {
            console.log("Could not find the question.");
        }
    }

    setTimeout(displayAnswer, 3000);
})();