:: Игры Разума
Re: Алгоритмы и программы
Zakharov_slava

Сообщений: 2022
Откуда: Алматы
Дата регистрации: 14.10.2005
Это что за цифры?
Ratings: 0 negative/0 positive
Re: Алгоритмы и программы
Zakharov_slava

Сообщений: 2022
Откуда: Алматы
Дата регистрации: 14.10.2005
CREATE CURSOR rectangle (_n I, res I,_is L)
LOCAL lnN_MIN_1, squareroot, lnres , lnIs as Logical, lnSqrt

lnres = 0
FOR i = 1 TO 10000

lnN_MIN_1 = lnres
lnres = i*i - lnN_MIN_1
lnSqrt = INT(SQRT(lnres))
lnIs = (lnSqrt*lnSqrt == lnres)
INSERT INTO rectangle (_n, res, _is) VALUES ( i, lnres, lnIs)
ENDFOR
SELECT * FROM rectangle WHERE _is INTO CURSOR _temp
browse
Ratings: 0 negative/0 positive
Re: Алгоритмы и программы
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Привет Леонид!

Что-то ты тут путаешь...
У 2*m^2=n^2+n есть множество целочисленных решений.

Грубо и примитивно (при больших числах уже пойдёт ошибка округления):
FOR n = 1 TO 1000000
m = SQRT((n+1)*n/2)
IF m = INT(m)
? INT(m), n
ENDIF
ENDFOR

P.S. Эти числа называются "фигурными" - треугольным и соответственно квадратным. Есть много любопытных фактов касательно таких чисел - тут уж гугл в помощь


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Алгоритмы и программы
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Zakharov_slava
Это что за цифры?
Это m. Ты выводишь n и соответсвенно m^2 он же (n+1)*n/2


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Алгоритмы и программы
Zakharov_slava

Сообщений: 2022
Откуда: Алматы
Дата регистрации: 14.10.2005
Igor Korolyov
Zakharov_slava
Это что за цифры?
Это m. Ты выводишь n и соответсвенно m^2 он же (n+1)*n/2

что то не похоже...

Понял, имеются ввиду сторона квадрата... затупил



Исправлено 1 раз(а). Последнее : Zakharov_slava, 27.08.08 13:53
Ratings: 0 negative/0 positive
Re: Алгоритмы и программы
Рома

Сообщений: 1079
Дата регистрации: 06.06.2001
Вот о квадратно-треугольных числах с формулами

en.wikipedia.org
Ratings: 0 negative/0 positive
Re: Алгоритмы и программы
leonid

Сообщений: 3204
Откуда: Рига
Дата регистрации: 03.02.2006
Привет Игорь!
Igor Korolyov
FOR n = 1 TO 1000000
m = SQRT((n+1)*n/2)
IF m = INT(m)
? INT(m), n
ENDIF
ENDFOR
Самое интересное, что я написал почти в точности такую же программку, только вот, ошибочка вышла: вместо
m = SQRT((n+1)*n/2)
написал
m = SQRT((n+1)*n)/4
т.е. реально решалось уравнение 16*m^2=n^2+n. А у такого уравнения, оказывается, решений нет. Все-таки, нелинейные диафантовы уравнения - непростая штука.
Ratings: 0 negative/0 positive
Re: Алгоритмы и программы
mayil
Автор

Сообщений: 277
Откуда: Гянджа, Азербайд
Дата регистрации: 20.06.2006
[attachment 7042 systerna1.JPG]Привет всем!

Лет 30 назад предложили мне проградуировать обыкновенную железнодорожную цистерну.
Железнодорожная цистерна (см. рисунок) – это лежащий на боку цилиндр, основания которого заделаны сферическими сегментами. Сфе-рическим сегментом называется часть сферы, отсеченная плоскостью.
Задача формулируется просто: найти объём жидкости высотой х. На практике пользуются таблицами градуировки объёма цистерны по высоте наполнения х от 0 до 2R через каждый сантиметр. Такие цистерны, зарытые в землю по горловину, являются инвентарём автозаправочных станций (АЗС) и винодельческих заводов – кстати, тамошние цистерны назы-вают бродильными танками. На АЗС в горловину цистерны опускают длинный медный шток с делениями и по смоченной её части х находят в той самой градуировочной таблице объём жидкости, соответствующей высоте наполнения х. Итак, нам надо выразить объём жидкости в цистерне как функцию от высоты жидкости х: V = V (х) и составить таблицу её значений для х от 0 до 2R.
Пусть L – длина цилиндрической части цистерны, а R – радиус основания цилиндрической части цистерны. Что касается боковых частей цистерны, то на практике трудно непосредственным образом измерить радиус R1 сферы, сегментами которой заделаны основания цилиндра, легче из-мерить высоту сегмента F и затем вычислить R1.
Итак даны: L, R, F в дм, чтоб объем получить в литрах.
Контрольный пример для отладки программы (размеры реальной железнодорожной цистерны):
R= 15 дм, L= 94,5 дм, F = 6,1 дм
Для полной цистерны должно быть получено: V(300)= 71347,8 литров

Это скорее всего математическая задача - составить формулу объема. А по ней прогу сделать легче. Без интегрирования точно не обойтись.
Ratings: 0 negative/0 positive
Re: Алгоритмы и программы
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
otvet.mail.ru

Без учёта боковых сегментов...

А вообще IMHO практического смысла задача не имеет (в смысле точное математическое решение не нужно) - нет идеальных фигур, нет способа установить цистерну "идеально горизонтально". Наверняка в практике надо учитывать "мёртвый" объём (то что не извлечь без выкапывания и демонтажа цистерны)... В общем тривиально "измерением" она и градуируется...

Кстати для способа со "штоком" и "сантиметровой" точностью придётся учитывать ещё массу факторов (или конструировать дополнительные устройства) - вертикальность спуска штока, достижение дна в низшей точке, смачиваемость материала штока жидкостью (поверхностное натяжение исказит реальную высоту жидкости, хоть и немного), отсутствие колебаний жидкости в момент измерения...

P.S. Честно говоря никогда не видел чтобы в подобные цистерны кто-то чего-то такого засовывал (да и опломбирован там наверняка верхний люк) - думаю сейчас есть иные способы измерения - даже скорее всего не собственно объёма, а потоков - "прихода и расхода" - это не так уж сложно реализовать


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Алгоритмы и программы
Влад Колосов

Сообщений: 22664
Откуда: Ростов-на-Дону
Дата регистрации: 05.05.2005
Если в цистерне жидкость, то измеряют давление через отводящую трубку внизу. Есть специальные датчики. Объем жидкости может меняться, но вес остается постоянным...


------------------
Совершенство - это не тогда, когда нельзя
ничего прибавить, а тогда, когда нечего убавить.




Исправлено 1 раз(а). Последнее : Влад Колосов, 13.10.08 12:25
Ratings: 0 negative/0 positive
Re: Алгоритмы и программы
leonid

Сообщений: 3204
Откуда: Рига
Дата регистрации: 03.02.2006
Igor Korolyov
А вообще IMHO практического смысла задача не имеет (в смысле точное математическое решение не нужно)
А я думаю, что точное решение может быть очень неплохим приближением, дающим вполне достаточную точность для практического применения. Может быть даже с экономической стороны самым дешевым.
Цитата:
Честно говоря никогда не видел чтобы в подобные цистерны кто-то чего-то такого засовывал
А я видел, только очень давно, в детстве. Сейчас уже наверное такие методы не используют - китайские датчики стоят дешевле деревянных палок.

Теперь о решении. Если не учитывать боковые сегменты, то там действительно все очень просто - нужно площадь покрытого жидкостью сегмента круга умножить на длину. Площадь сегмента - это самая последняя формула в приведенной Игорем ссылке (там автор по-видимому просто забыл умножить на длину L). Вот вычислить объем жидкости в боковых сегментах труднее. Тут два варианта. Первый - или искать в учебниках и интернете формулу для определения объема куска шара, вырезанного двумя перпендикурярными плоскостями. Думаю, наверняка такие формулы где-то есть. И второй - действительно, взять и проинтегрировать. Трудного в этом ничего нет, да уж как-то больно не хочется. Может, для практических нужд можно взять, да и еще немного пожертвовать точностью - заменить указанное тело на цилиндр, немного его расширив, скажем на F/3 в обе стороны?
Ratings: 0 negative/0 positive
Re: Алгоритмы и программы
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
А если палка деревянная, то ещё и капиллярные явления необходимо учитывать
В любом случае сантиметровой точности не получится никак... А "дециметровая" точность (плюс-минус пару тонн бензина) наверное только в exUSSR проходила, особенно учитывая нынешние цены на топливо, да и на виноматериалы тож. Так что IMHO задача имеет всё-же сугубо теоретический интерес


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Алгоритмы и программы
PaulWist

Сообщений: 14614
Дата регистрации: 01.04.2004
Igor Korolyov
... Так что IMHO задача имеет всё-же сугубо теоретический интерес

Всё зависит от метода измерения этих сантиметров, как уже говорили достаточно мерить вес столба жидкости и переводить в сантиметры высоты столба, всё очень просто.

Такой метод позволяет даже получать изменение плотности жидкости от температуры.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Алгоритмы и программы
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Это чем-то напоминает историю про молодого Нильса Бора и барометр pozzzy.ru


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Алгоритмы и программы
PaulWist

Сообщений: 14614
Дата регистрации: 01.04.2004
Igor Korolyov
Это чем-то напоминает историю про молодого Нильса Бора и барометр pozzzy.ru

Не все на первый взляд "дурацкие" идеи бессмысленны.

У меня, например, уже 10 лет работает система определения массы и плотности жидких компонентов в ёмкостях по 6м3, причем плотность одной из жидкостей от 1.02 до 1.04 т/м3, те во 2-ом знаке после запятой.
И жидкости имеют плотности как меньше 1 так и больше.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Алгоритмы и программы
mayil
Автор

Сообщений: 277
Откуда: Гянджа, Азербайд
Дата регистрации: 20.06.2006
Конечно же, задача эта на любителя. Придется проинтегрировать, прерасная возможность потренировать серое вещество!
Ratings: 0 negative/0 positive
Re: Алгоритмы и программы
leonid

Сообщений: 3204
Откуда: Рига
Дата регистрации: 03.02.2006
Вот как раз серого вещества здесь много не надо. Совершенно точно известно, как эту задачу решать. Всего то и надо - раскопать старые учебники, да порыться в формулах. А если кто хотет потренировать серое вещество, пожалуй приведу одну школьную задачку, но уже в другой ветке.
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 1 (Гостей: 1)

© 2000-2024 Fox Club 
Яндекс.Метрика