-
+124
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
samples = [(1,14),(2,-66),(3,-414),(4,-1180),(5,-2370),(6,-3726),(7,-4606),(8,-3864),(9,270)]
-- Бесконечная система уравнений для МНК
system s = zip (matrix s) (column s) where
matrix = iterate tail . foldr1 (zipWith (+)) . map (\(x,y) -> iterate (*x) 1)
column = foldr1 (zipWith (+)) . map (\(x,y) -> iterate (*x) y)
-- Сведение бесконечной системы к треугольному виду (первый шаг гаусса)
triangle (eq:eqs) = (eq : triangle (map (sub eq) eqs)) where
sub eq1@(a1:as, ae) eq2@(b1:bs, be) = (zipWith f as bs, f ae be) where
f a b = b - a * b1 / a1
-- Вычисление иксов (второй шаг гаусса)
calcX n = foldr calc [] . take n where
calc (a:as, b) xs = ((b - sum (zipWith (*) as xs)) / a : xs)
-- метод наименьших квадратов
mnk n = reverse . calcX n . triangle . system
Метод наименьших квадратов.
http://ideone.com/CsD0ku
bormand,
25 Ноября 2012
-
+125
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
splitOn :: (a -> Bool) -> [a] -> [[a]]
splitOn _ [] = []
splitOn f xs = removeEmpty $ takeWhile (not . f) xs: splitOn f (dropWhile (f) $ dropWhile (not . f) xs) where
removeEmpty [] = []
removeEmpty (x:xs)
| null x = removeEmpty xs
| otherwise = x: removeEmpty xs
words' :: String -> [String]
words' = splitOn (flip elem " \n\r\f\t\v\160")
Еще один words'
Fai,
25 Ноября 2012
-
−100
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
size = 3
lines = ["___", "bcd", "___"]
board = [[None]*size]*size
for x in range(0, size):
for y in range(0, size):
if lines[x][y] != '_':
board[x][y] = lines[x][y]
print(board)
я бы, очевидно, хотел видеть результат:
[[None, None, None], ['b', 'c', 'd'], [None, None, None]]
но питоша выводит:
[['b', 'c', 'd'], ['b', 'c', 'd'], ['b', 'c', 'd']]
serpinski,
24 Ноября 2012
-
+133
- 1
- 2
- 3
#include <math.h>
...
result = (thisCos ? cos : sin)(3.140);
Коллега занимается инновациями в Сколково, так они там изобрели операцию NOT на континууме.
serpinski,
24 Ноября 2012
-
+161
- 1
- 2
- 3
function toInt(number) {
return number && + number | 0 || 0;
}
http://ideone.com/igo7ag
Минут 10 назад меня ошарашили фразой о методе toInt(), который, якобы, есть в javascript. Гугл выдал всего одну ссылочку, в которой говорится о нем: http://javascript.ru/forum/misc/22100-funkciya-toint-razyasnite-pozhalujjsta-neskolko-momentov.html. Увидев данный код, я просто не мог не выложить его сюда.
bormand,
23 Ноября 2012
-
−94
- 1
$class = (preg_match("/^[0-9]+$/", $i/2)) ? "cssBgHex0F0F0F" : "cssBgHexAFAFAF";
ПХП-коллега выдал: подсветка чётных номеров строк :)
serpinski,
23 Ноября 2012
-
+77
- 1
delete[] Memory, leak; //Унарные операторы, такие уринарные.
Былинный отказ.
igumnovf,
23 Ноября 2012
-
+67
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
function IntToHex(N: integer): string;
const
S = '0123456789ABCDEF';
var
i: integer;
begin
SetLength(Result, 8);
for i := 0 to 7 do Result[8 - i] := S[N shr (i shl 2) and $0F + 1];
end;
Носки менял, ноги мыл, все равно воняет хаккирством.
И оно почему-то в модуле WinAPI.pas у Тараса лежит о_О
PascalGovno,
23 Ноября 2012
-
+105
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
//All mouse messages have to be passed to the Master Edit Control
//because the panel intercepts them.
if (m.Msg == PUtils.WM_MOUSEMOVE)
PUtils.SendMessageToMaster(m.Msg, m.WParam, m.LParam, -1);
else
if (m.Msg == PUtils.WM_LBUTTONDOWN)
PUtils.SendMessageToMaster(m.Msg, m.WParam, m.LParam, -1);
else
if (m.Msg == PUtils.WM_LBUTTONUP)
PUtils.SendMessageToMaster(m.Msg, m.WParam, m.LParam, -1);
else
if (m.Msg == PUtils.WM_LBUTTONDBLCLK)
PUtils.SendMessageToMaster(m.Msg, m.WParam, m.LParam, -1);
else
if (m.Msg == PUtils.WM_MOUSELEAVE)
PUtils.SendMessageToMaster(m.Msg, m.WParam, m.LParam, -1);
else
if (m.Msg == PUtils.WM_RBUTTONDOWN)
PUtils.SendMessageToMaster(m.Msg, m.WParam, m.LParam, -1);
else
if (m.Msg == PUtils.WM_MOUSEACTIVATE)
PUtils.SendMessageToMaster(m.Msg, m.WParam, m.LParam, -1);
}//Override WndProc
паубивав бы !!!
63F45EF45RB65R6VR,
23 Ноября 2012
-
+74
- 1
- 2
- 3
- 4
- 5
- 6
private static class NullReader extends Reader {
public int read(char[] cbuf, int off, int len) {
return 0;
}
public void close() {}
}
Однажды понадобилось работать с модулем, который что-то читает с помощью StreamTokenizer, но вместо реального файла подсовывать ему что-то своё, генерируемое на ходу, и при этом быть в курсе, какое место он сейчас читает. Решил пронаследоваться от StreamTokenizer и переопределить ему nextToken(). Оказалось, что у StreamTokenizer нет пустого конструктора, надо обязательно вызвать super и передать туда какой-нибудь Reader. Попробовал передавать null - оказалось, что в его конструкторе стоит проверка, которая сразу кидает NullPointerException. Блин, зачем ему Reader, если он к этому Reader никогда не обратится, ведь я nextToken переопределил! Пришлось сделать свой Reader-заглушку. Но чтобы пронаследоваться от абстрактного Reader, нужно обязательно определить методы read и close. Вот такая шняга в итоге получилась. Недавно случайно открыл код на этом месте и долго на неё пялился :-)
GoblinAlchemist,
23 Ноября 2012