Самый быстрый метод, чтобы определить, является ли число треугольным числом

Треугольное число является суммой n натуральных чисел от 1 до n. Что должен найти самый быстрый метод, является ли данное положительное целое число треугольным?

Вот сокращение первого 1200-го до 1300-х треугольных чисел, можно легко видеть, комбинация двоичных разрядов здесь (в противном случае пытаются уменьшить масштаб):

(720600, '10101111111011011000')
(721801, '10110000001110001001')
(723003, '10110000100000111011')
(724206, '10110000110011101110')
(725410, '10110001000110100010')
(726615, '10110001011001010111')
(727821, '10110001101100001101')
(729028, '10110001111111000100')
(730236, '10110010010001111100')
(731445, '10110010100100110101')
(732655, '10110010110111101111')
(733866, '10110011001010101010')
(735078, '10110011011101100110')
(736291, '10110011110000100011')
(737505, '10110100000011100001')
(738720, '10110100010110100000')
(739936, '10110100101001100000')
(741153, '10110100111100100001')
(742371, '10110101001111100011')
(743590, '10110101100010100110')
(744810, '10110101110101101010')
(746031, '10110110001000101111')
(747253, '10110110011011110101')
(748476, '10110110101110111100')
(749700, '10110111000010000100')
(750925, '10110111010101001101')
(752151, '10110111101000010111')
(753378, '10110111111011100010')
(754606, '10111000001110101110')
(755835, '10111000100001111011')
(757065, '10111000110101001001')
(758296, '10111001001000011000')
(759528, '10111001011011101000')
(760761, '10111001101110111001')
(761995, '10111010000010001011')
(763230, '10111010010101011110')
(764466, '10111010101000110010')
(765703, '10111010111100000111')
(766941, '10111011001111011101')
(768180, '10111011100010110100')
(769420, '10111011110110001100')
(770661, '10111100001001100101')
(771903, '10111100011100111111')
(773146, '10111100110000011010')
(774390, '10111101000011110110')
(775635, '10111101010111010011')
(776881, '10111101101010110001')
(778128, '10111101111110010000')
(779376, '10111110010001110000')
(780625, '10111110100101010001')
(781875, '10111110111000110011')
(783126, '10111111001100010110')
(784378, '10111111011111111010')
(785631, '10111111110011011111')
(786885, '11000000000111000101')
(788140, '11000000011010101100')
(789396, '11000000101110010100')
(790653, '11000001000001111101')
(791911, '11000001010101100111')
(793170, '11000001101001010010')
(794430, '11000001111100111110')
(795691, '11000010010000101011')
(796953, '11000010100100011001')
(798216, '11000010111000001000')
(799480, '11000011001011111000')
(800745, '11000011011111101001')
(802011, '11000011110011011011')
(803278, '11000100000111001110')
(804546, '11000100011011000010')
(805815, '11000100101110110111')
(807085, '11000101000010101101')
(808356, '11000101010110100100')
(809628, '11000101101010011100')
(810901, '11000101111110010101')
(812175, '11000110010010001111')
(813450, '11000110100110001010')
(814726, '11000110111010000110')
(816003, '11000111001110000011')
(817281, '11000111100010000001')
(818560, '11000111110110000000')
(819840, '11001000001010000000')
(821121, '11001000011110000001')
(822403, '11001000110010000011')
(823686, '11001001000110000110')
(824970, '11001001011010001010')
(826255, '11001001101110001111')
(827541, '11001010000010010101')
(828828, '11001010010110011100')
(830116, '11001010101010100100')
(831405, '11001010111110101101')
(832695, '11001011010010110111')
(833986, '11001011100111000010')
(835278, '11001011111011001110')
(836571, '11001100001111011011')
(837865, '11001100100011101001')
(839160, '11001100110111111000')
(840456, '11001101001100001000')
(841753, '11001101100000011001')
(843051, '11001101110100101011')
(844350, '11001110001000111110')

Например, можно ли также видеть повернутую кривую нормального распределения, представленную нулями между 807 085 и 831405? Этот шаблон повторяется regularly.->

11
задан psihodelia 26 May 2010 в 15:15
поделиться

4 ответа

Если n - m треугольное число, то n = m*(m+1)/2. Решаем m с помощью квадратичной формулы:

m = (sqrt(8n+1) - 1) / 2

Таким образом, n является треугольным тогда и только тогда, когда 8n+1 является совершенным квадратом. Чтобы быстро определить, является ли число совершенным квадратом, смотрите этот вопрос: Самый быстрый способ определить, является ли квадратный корень из целого числа целым числом.

Обратите внимание, что если 8n+1 является совершенным квадратом, то числитель в приведенной выше формуле всегда будет четным, поэтому нет необходимости проверять, что он делится на 2.

.
39
ответ дан 3 December 2019 в 00:49
поделиться

Целое число x точно треугольное, если 8x + 1 - квадрат.

12
ответ дан 3 December 2019 в 00:49
поделиться

Я не знаю, самый быстрый ли это вариант, но вот некоторые математические вычисления, которые должны направить вас в правильном направлении ...

S = n (n + 1) / 2
2*S = n^2 + n
n^2 + n - 2*S = 0

Теперь у вас есть квадратное уравнение.

Решите для n.

Если в n нет дробных битов, все в порядке.

3
ответ дан 3 December 2019 в 00:49
поделиться

Домашняя работа?

Сумма чисел от 1 до N

1 + 2 + 3 + 4 + ... n-1 + n

если сложить первое плюс последнее, а потом второе плюс второе от последнего, то ....

= (1+n) + (2+n-1) + (3+n-2) + (4+n-3) + ... (n/2 + n/2+1)

= (n=1) + (n+1) + (n+1) + ... (n+1); .... n/2 раз

= n(n+1)/2

Это должно помочь вам начать ...

2
ответ дан 3 December 2019 в 00:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: