Здравствуйте, в этой статье мы выясним закономерности степенных функций, то есть от чего зависит значение степенной функции, ну или попытаемся его найти…

Давайте составим таблицу значений функции y=x^2:

  1. В первом столбце будут значения x от 0 до 9;
  2. Во втором столбце будут значения функции y от x;
  3. Мы добавим третий столбец, где будут значения, насколько данное значение функции отличается от следующего (то есть добавляем первый слой разниц);
  4. Добавляем четвертый столбец, где будут значения, насколько данное значение прошлого столбца будет отличаться от следующего (второй слой разниц);

image

Мы можем заметить, что на втором слое разниц появилась постоянная разница равная 2. Давайте составим подобные таблицы для степеней 3 и 4, то есть найдем слои разниц для функций y=x^3, y=x^4

image

И мы можем заметить, что:

  • Какая степень, столько и слоев разниц;
  • Постоянная разница на последнем слое является факториалом степени;

Чтобы проверить это, я набросал программу, которая создает эти таблицы и вычисляет количество слоев разниц и постоянную разницу, и результат можно увидеть на изображении ниже…

image

Код программы
# y = x^n & layers of values

from os import system
from sys import exit, platform

#-----------------!

def cls():
	if platform == "win32":
		system("cls")
	elif platform == "linux":
		system("clear")
	else:
		print("!error!")
		exit()
	line = "y=x^n & layers of values"
	print(line)
	print("_"*len(line))
	
def intt(num, ts):
	t = len(str(ts))
	n = len(str(num))
	tv = t - n
	line = "0"*tv + str(num)
	return line
	
def maxN(line):
	res = 0
	for el in line:
		if el > res:
			res = el
	return res
	
def checkEqing(line):
	t = line[0]
	for el in line:
		if t != el:
			return False
	return True
	
#-----------------!

def getVar():
	cls()
	print("Enter the Value of the number degree:")
	n = int(input(">>"))
	print("Enter the Count of y-values:")
	h = int(input(">>")) +1
	return n, h
	
def makefslines(n, h):
	linef = []
	lines = []
	i = 0
	while i < h:
		linef.append(i)
		ii = 0
		t = 1
		while ii < n:
			t = t * i
			ii = ii + 1
		lines.append(t)
		i = i + 1
	return linef, lines
	
def makeLayer(line):
	layer = []
	i = 0
	while i < len(line)-1:
		t = line[i+1] - line[i]
		layer.append(t)
		i = i + 1
	return layer
	
def makeTable(n, h):
	table = []
	linef, lines = makefslines(n, h)
	table.append(linef)
	table.append(lines)
	table.append(makeLayer(lines))
	while not checkEqing(table[-1]):
		table.append(makeLayer(table[-1]))
	return table
	
def analyzeTable(table):
	layercount = len(table)-2
	adder = table[-1][0]
	return layercount, adder

#-----------------!

def _run():
	cls()
	values = []
	print("Enter the count of values: ")
	n = int(input(">>"))
	i = 1
	while i <= n:
		table = makeTable(i, i+1)
		lc, add = analyzeTable(table)
		values.append([lc, add])
		i = i + 1
	max = 0
	for el in values:
		if el[0] > max: max = el[0]
	for el in values:
		print(intt(el[0], max) + " => " + str(el[1]))
_run()


И как мы видим, наши наблюдения подтвердились…

Вывод


Значения степенных функций имеют такое количество слоев, насколько равна сама степень, и разность на последнем слое равна факториалу степени…

Что делать с этой информацией — я пока не знаю, если я что-нибудь найду или придумаю, то сделаю вторую часть статьи.

А вы можете поделиться своими мыслями в комментариях или лично мне.

И я не уверен, на сколько уникально данное наблюдение, поэтому если по этой теме есть материалы, прошу поделиться со мной так же в комментариях…