;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Radiciação - Regras da potenciação

Antonio Rodrigues Neto, Especial para a Página 3 Pedagogia & Comunicação

Imagine abrir um livro de matemática e encontrar a expressão abaixo:

x = 7 2 9 6

Lemos que x é a raiz sexta de 729, sendo que, nesse número, está sendo aplicada uma operação conhecida como radiciação. A radiciação é a operação inversa da potenciação - e pode ser interpretada como consequência de uma potenciação em que não conhecemos o valor da base.

Para ilustrar melhor a relação entre essas duas operações inversas utilizarei a pergunta que gerou a curiosa expressão no inicio deste texto: qual o número que, elevado a seis, é igual a 729?

A álgebra - que é sempre um bom recurso para esse tipo de pergunta - transforma essa pergunta em uma equação, utilizando a estratégia de representar, por meio de letras, as quantidades ou as medidas desconhecidas:

x 6 = 7 2 9

Resolver uma equação é calcular o valor da incógnita proposta pelo problema. Para isso são aplicados artifícios e manobras do pensamento matemático que, no nosso caso, terão de envolver as propriedades da potenciação.

Uma dessas manobras é a da potência elevada a uma outra potência. Em vez de aplicarmos duas vezes o conceito de potenciação (exemplo a), simplificamos o caminho multiplicando diretamente os expoentes (exemplo b):

a 7 2 3 = 7 . 7 3 = 7 . 7 . 7 . 7 . 7 . 7 = 7 . 7 . 7 . 7 . 7 . 7 = 7 6
b 7 2 3 = 7 2 . 3 = 7 6

Com essa propriedade, podemos construir um caminho para resolver a nossa equação do x elevado a seis que é igual a 729:

x 6 = 7 2 9

Observando o expoente 6, somos instigados, pela propriedade já mostrada, a multiplicar o expoente seis pelo seu inverso, a fim de obter resultado igual a 1. Para que isso ocorra, temos de elevar a potência do primeiro membro, x elevado a seis, a um sexto. Essa iniciativa constrói um caminho confortável para acharmos o valor de x:

x 6 1 6 = x 6 . 1 6 = x 6 6 = x 1 = x

O desafio a a ser o de eliminar o expoente do primeiro membro sem causar a desigualdade na equação. Com essa preocupação, tudo o que for feito no primeiro membro terá que ser feito no segundo membro, e vice-versa. É um dos princípios que mantém a igualdade de uma equação e que organiza caminhos para a sua resolução. Dessa forma, elevamos os dois membros da nossa equação a um sexto:

x 6 1 6 = 7 2 9 1 6 x = 7 2 9 1 6

Feito isso, fazemos a fatoração de 729. Já que estamos trabalhando com as propriedades da potenciação, tudo que for escrito com expoente servirá de e nas aplicações dessas propriedades. O resultado da fatoração de 729 é três elevado a seis:

x = 7 2 9 1 6 x = 3 6 1 6

Assim, aplicamos novamente a propriedade da potenciação de multiplicar os expoentes, com as respectivas simplificações, obtendo o valor simplificado de x:

x = 3 6 1 6 = 3 6 . 1 6 = 3 1 = 3

Um outro caminho é realizar primeiro a fatoração - e depois as manobras com os expoentes. Qual é o número que, elevado a seis, é igual a 16?

x 6 = 1 6 x 2 = 2 4 x 6 1 6 = 2 4 1 6 x 1 2 4 6 x = 2 2 3

Percebemos que, no exemplo acima, temos a simplificação do expoente de 4/6 para 2/3. Um resultado que mantém o expoente fracionário, na condição deste não poder mais ser simplificado. Esse expoente fracionário conduz a uma importante informação, que auxilia na interpretação da radiciação. O expoente fracionário pode ser representado de uma outra forma. A matemática possui esses detalhes em sua linguagem:

x = 2 2 3 = 2 2 3 x = 4 3

O denominador do expoente fica na forquilha do radical (símbolo da operação) e será chamado de índice. Já o numerador fica como sendo o expoente do número que está dentro da raiz, que é conhecido por radicando.

Então, no exemplo acima, o 4 é o radicando, o 3 é o índice e o resultado da operação, representado por x, é a raiz. A operação não sendo exata, como neste exemplo, significará que não foi possível transformar, por simplificações, o expoente fracionário em um número inteiro. Dessa forma, ele se manterá fracionário e poderemos deixá-lo indicado no radical, como acabamos de descrever.

A raiz quadrada de 2 ou a raiz cúbica de 7 são alguns dos infinitos exemplos desses casos. Eles irão gerar um novo tipo de número, que será classificado como irracional. Um tema para ser aprofundado em uma outra ocasião.