00:26:32 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)). 00:27:40 -!- puzzlet has joined. 00:50:27 competing with your own game ai's is always disappointing, if you win, your ai sucks, if you lose, you suck 00:51:20 If you win, you suck. If you lose, you suck. 00:51:21 The end. 00:51:44 basically 00:52:01 the half-empty glass 00:52:16 o 00:52:22 The glass that's just too big. 01:01:19 If you solve the game and make it so that the AI literally cannot lose, it's different. If you win, you suck, if you lose, you're brilliant. 01:09:29 True. 01:09:43 Unless you're solving something too damned simple. 01:09:48 (Tic-Tac-Toe) 01:10:04 Then, no matter what you do, you suck: who the hell bothers solving something that simple? :p 01:10:21 i used to beat all the other kids at tic-tac-toe 01:10:23 i thought i was so smart 01:10:55 I used to be able to force a tie or win. 01:11:05 yeah, that's what i mean 01:11:16 (if both sides have perfect play, tie is the best that can be done) 01:12:15 (duh) 01:12:18 i never considered tic-tac-toe a game 01:12:33 i can force a tie or win in nim too :)))) 01:12:39 hooray for me! 01:12:44 nim? 01:12:47 I consider it a trivial game. 01:12:48 I can force a tie or win in vim. 01:12:55 nim is a trivial game 01:13:05 But can you do that in Emacs? 01:13:50 -!- chuck has quit (Read error: 104 (Connection reset by peer)). 01:14:20 -!- chuck has joined. 01:32:35 -!- jix has quit ("CommandQ"). 02:18:25 -!- puzzlet_ has joined. 02:25:17 -!- puzzlet__ has joined. 02:30:09 -!- puzzlet has quit (Read error: 110 (Connection timed out)). 02:31:29 f(0) = 0; \lim_{x->\infty} f(x) = 1 02:31:31 what's f? 02:35:17 -!- puzzlet__ has quit (Remote closed the connection). 02:35:21 -!- puzzlet has joined. 02:35:35 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)). 02:40:54 1 - 1/(x + 1) 02:42:34 are there any others? 02:44:05 -!- puzzlet has quit (Remote closed the connection). 02:44:06 -!- puzzlet_ has joined. 02:54:21 -!- puzzlet_ has quit (Remote closed the connection). 02:54:26 -!- puzzlet has joined. 02:59:14 -!- oerjan has joined. 03:03:46 are there any others? 03:03:54 an uncountable number in fact 03:04:15 i think i found a good one 03:04:27 1-1/(sqrt(x)/n + 1) 03:06:38 1 - exp(-x) is another simple one 03:09:53 f(x)=x/(x-1) 03:10:47 dblog: not defined in 1 03:10:47 or for that matter, f(x)=x/(x+c) where c is any nonzero constant. 03:11:00 dbc i mean 03:11:18 hmm actually 03:11:47 c=1 gives bsmntbombdood's original if you rewrite a bit 03:12:01 -!- puzzlet_ has joined. 03:12:10 Yeah. Was there a criterion that said the function had to be total? 03:12:27 not really 03:12:32 continuous in [0, \infty] 03:12:40 oh, continuous 03:12:50 -!- puzzlet has quit (Read error: 110 (Connection timed out)). 03:12:52 Okay. Then we have to use a positive value for c. 03:13:23 i was going to say there were _more_ of them than the number of reals, but continuity whittles that down to equal number 03:15:09 f(2*x) = x * sqrt(2 - x**2) 03:15:44 is there one that satisfies that condition too? 03:16:01 what condition? 03:16:24 f(2*x) = x * sqrt(2 - x**2) 03:17:07 Is that a condition and not a definition? 03:17:09 -!- puzzlet_ has quit (Read error: 104 (Connection reset by peer)). 03:17:36 i say it's a definition, which means there is only one f, although a definition is sort of a condition too 03:17:41 oh right 03:18:20 hrm 03:18:28 for one thing, that one is imaginary for big x 03:18:32 Was about to say. 03:19:13 -!- puzzlet has joined. 03:20:11 difficult 03:21:33 another one: arctan x / (pi/2) 03:23:28 well 03:24:15 i'm using this function to map values in [0, \infty) into [0, 1) to give to OR 03:24:45 so i would like f(2*x) to be the same as or(f(x), f(x)) 03:25:29 huh? 03:25:35 ok 03:25:39 what's or 03:26:30 -!- puzzlet_ has joined. 03:26:39 or(a,b,n=1) = (a**n+b**n - a**n*b**n)**(1/n) 03:27:09 um that n=1 makes little sense? 03:28:21 n defaults to 1 if it's called with two arguments 03:28:45 otoh generalizing to n is obvious i think 03:29:35 so first, a+b-a*b 03:30:25 is that associative? 03:30:56 yes 03:31:21 i can just do this recursively using that definition 03:31:23 a+(b+c-b*c)-a*(b+c-b*c) = a+b+c -b*c-a*b-a*c +a*b*c 03:31:30 using f(.0001) = .0001 or such 03:31:34 right... a bell rings 03:32:16 that's not even too slow either 03:32:37 logarithms were originally calculated that way, i think 03:32:51 -!- puzzlet__ has joined. 03:34:17 ah, of course a+b-a*b = 1 - (1-a)*(1-b) 03:34:56 de morgan's law essentially 03:35:24 so f(x) = 1 - exp(x) 03:35:51 or 1 - exp(-x), which i think i already mentioned 03:36:14 huh? 03:36:22 f(x) = 1 - exp(-x) 03:36:52 -!- puzzlet has quit (Read error: 110 (Connection timed out)). 03:37:03 hot damn 03:37:54 and for other n? 03:38:31 f(x) = (1 - exp(-x))^(1/n) i think 03:39:38 no 03:39:39 basically all your or's are equivalent to multiplication except for applying to a function to the initial arguments and its inverse to the result 03:41:00 so just apply that inverse function to exp(-x) and you get f(x) 03:41:21 what's incorrect about the n case? 03:42:25 it grows way faster than it should 03:43:07 oh. well you can replace ^n with any other invertible function in both or and f 03:43:29 which ^n? 03:43:31 -!- puzzlet has joined. 03:43:49 ^n by the function and ^(1/n) by its inverse. all of them. 03:43:59 er, ** 03:44:22 i don't get it 03:44:42 for g(x) = x**n you have 03:45:31 g(1 - or(a,b)) = g(1-a) * g(1-b) 03:45:37 -!- puzzlet_ has quit (Read error: 110 (Connection timed out)). 03:45:46 and get f(x) = g(1 - exp(-x)) 03:45:53 er... 03:46:09 and get g(f(x)) = 1 - exp(-x) 03:46:28 so just pick your g 03:47:29 yep still don't get it 03:47:37 no matter how you choose it, it gets cancelled out and f(a+b) = or(f(a),f(b)) 03:48:01 did i make an error somewhere? 03:48:47 lessee 03:48:57 just for n=1 03:52:14 maybe i got something inverted 03:52:47 -!- puzzlet has quit (Remote closed the connection). 03:52:48 -!- puzzlet_ has joined. 03:54:50 or(f(a),f(b)) = 1 - (1 - f(a))*(1 - f(b)) = 1 - exp(-a)*exp(-b) = f(a+b) 03:55:39 for general n 03:55:57 ok... 03:56:20 -!- puzzlet__ has quit (Connection timed out). 03:56:33 -!- fizzie has quit (Read error: 60 (Operation timed out)). 03:56:49 or(a,b) = (1 - (1 - a**n)*(1 - b**n))**(1/n) 03:57:14 f(x) = (1 - exp(-x))**(1/n) 03:58:26 or(f(a),f(b)) = (1 - (1 - f(a)**n)*(1 - f(b)**n))**(1/n) = (1 - exp(-a)*exp(-b))**(1/n) = f(a+b) 04:03:21 perhaps a more abstract view... 04:04:50 hmph, hard to draw categorical diagrams in irc 04:06:37 hrm ok that works 04:06:42 weird 04:06:55 anyway say you have some functions + : (A,A) -> A, or : (B,B) -> B and f : A -> B such that f(x+y) = or(f(x),f(y)) 04:07:30 (while A = B in our case it is simpler to understand by treating them as separate i think) 04:08:02 now add a function g : B -> C which happens to be invertible 04:08:13 i got it 04:08:19 thanks a lot 04:08:29 ok 04:09:01 you're welcome 04:18:00 -!- chuck has quit ("This computer has gone to sleep"). 06:45:35 -!- puzzlet has joined. 06:45:35 -!- puzzlet_ has quit (Remote closed the connection). 07:59:59 -!- clog has quit (ended). 08:00:00 -!- clog has joined. 08:03:52 -!- puzzlet has quit (Remote closed the connection). 08:04:05 -!- puzzlet has joined. 08:49:27 -!- calamari has left (?). 08:50:04 -!- RedDak has joined. 09:16:24 -!- dbc has quit (Client Quit). 09:55:56 -!- oerjan has quit ("leaving"). 11:35:39 -!- jix has joined. 11:39:34 -!- Tritonio_ has joined. 12:03:49 -!- puzzlet has quit (Remote closed the connection). 12:03:57 -!- puzzlet has joined. 12:08:44 -!- Chadwick|359 has joined. 12:28:44 oerjan: in case you read logs, A B ­­!A !B doesn't work as you said 12:53:35 -!- puzzlet has quit (Remote closed the connection). 12:53:43 -!- puzzlet has joined. 13:25:28 -!- Chadwick|359 has quit (Remote closed the connection). 13:56:14 -!- Tritonio_ has quit (Remote closed the connection). 14:18:22 hey? 14:30:57 ho? 15:24:46 -!- jix has quit (Nick collision from services.). 15:24:56 -!- jix has joined. 15:47:39 -!- oerjan has joined. 15:50:49 oklopol: what A B !A !B are you talking about? 15:51:24 does it suffice to say !A == not A? 15:52:20 !A == inverse of A 15:52:22 Huh? 15:52:37 okay okay, rubik 15:53:07 i may have been imprecise 15:54:02 can you be precise then? :P 15:54:17 but anything which is not moved by either A or !A is unchanged by the combination, and similarly for B or !B 15:55:30 hmm... i'm pretty sure that's incorrect :\ 15:55:56 if A is a simple twist, and B is another twist where the twists share an edge 15:56:26 then the... blocks *only* B touches will change. 15:56:37 twist of a face? 15:56:41 yes 15:57:11 * oerjan picks his cube out of the drawer 15:57:42 cube one edge forward then left forward twist, right forward twist, left backward twist, right backward twist 15:58:12 argh, i cannot turn those words into movements 15:58:17 :) 15:58:20 wish i had a webcam 15:58:29 i don' 15:58:35 t know the real terms 15:58:49 right forward twist 15:59:07 meant the you have your right hand on the forward-right side 15:59:35 argh there is an annoying noise around 15:59:44 when the cube is rotated so that one of the edges is pointing forward... err.. not sure it's an edge, actually, i mean the intersection of two faces... 16:00:29 -!- chuck has joined. 16:00:37 ok let's say i have a corner pointing toward me 16:00:46 what's a corner :D 16:00:55 like the corner of 3 faces? 16:01:06 not of 2? 16:01:07 red face up, yellow down right, blue down left 16:01:14 okay 16:01:44 i have it like that now 16:02:08 so which faces do i turn? 16:02:13 now if you rotate yellow cw, blue ccw, yellow ccw and blue cw 16:02:34 yep 16:02:54 now the thingie that was below yellow 16:03:02 is to the left of yellow 16:03:32 even though it's not touched by B == the blue twist... 16:03:46 or, then i misunderstood what you meant by B's domain 16:03:59 i thought you meant what it'd have touched if applied as such. 16:04:24 a blue twist wouldn't have any effect on what's below yellow 16:04:51 i mean the actual blocks and tiny faces moved 16:05:23 hmm? 16:05:24 i.e. it counts as touched by B if A moves it into position to be touched by B first 16:05:58 right 16:06:48 it's much more realistic, but much less usable then :) 16:07:58 but still usable 16:09:15 i wonder how much societies with infinite population have been studied 16:10:02 argh messed up my cube 16:11:05 whew got it 16:11:06 since every node can still only be connected to finitely many other nodes (given a finite number of dimensions for the world they move in, and a finite size of nodes [people]), they couldn't actually produce an infinite amount of products for everyone in finite time 16:11:29 hard to concentrate on the cube now that that came to mind xD 16:12:42 i'm not sure sociologists are that interested in that kind of stuff... or they'd chosen something more theoretical to study in the first place 16:13:03 if sociology is what i think it is 16:13:19 anyhow, i mean the correct thing if that's not it 16:13:24 i do recall looking at some work on continuous populations 16:13:30 :D 16:13:33 cool 16:14:18 although that is mostly to replace large populations with something calculus can work with, i think 16:15:48 right, that is a bit different 16:16:11 me and a collaborator had some hope of connecting a generalization of measures we were working on to that theory. but nothing real came of it 16:17:32 generalization of measures... measuring what? :D 16:18:29 only open and closed sets have measures in that theory 16:19:08 and the union of two sets can have larger measure than the sum if they are not disjoint 16:19:17 -!- RedDak has quit (Remote closed the connection). 16:19:37 he did his PhD on them 16:20:24 umm... isn't the complement of "open and closed sets" the empty set?? 16:20:26 *-? 16:20:52 can a set be other than open or closed 16:20:53 um, the sets that are either open or closed (or sometimes both) 16:21:04 er, certainly 16:21:08 oh 16:21:30 okay, now what's the "measure" of a set? 16:21:45 e.g. the rationals are a subset of the reals which is neither open nor closed 16:22:13 hmm... is it because it's infinite? 16:22:19 hmm... 16:22:20 no 16:22:34 well partly, since all finite sets are closed in the reals 16:23:03 yeah 16:23:14 but e.g. a closed interval is not a finite set 16:23:17 "in the reals", but not always? 16:23:41 true 16:23:42 general topological spaces are _very_ general 16:24:07 although you usually add some nicer axioms 16:24:23 and single points being closed is one of the first 16:24:50 finite sets follow from that, since the union of two closed sets is closed 16:25:22 okie. 16:25:41 not sure what you mean by "single points being closed" 16:26:10 a set containing a single element (point) of the space in question 16:27:10 now being closed is also very general, the topology of a space is simply defined by which subsets are considered closed (or equivalently, open) 16:27:43 the complement of a closed set is open, and vice versa 16:30:04 right 16:30:38 lol i'd forgotten how great music my composer program created 16:37:18 -!- calamari has joined. 17:33:15 pikhq: new minus! http://www.kiwisbybeat.com/minus.html 17:57:20 -!- chuck has quit ("This computer has gone to sleep"). 17:59:16 -!- RodgerTheGreat has quit. 17:59:20 -!- RodgerTheGreat has joined. 17:59:32 -!- RodgerTheGreat has quit (Client Quit). 18:07:01 -!- chuck has joined. 18:08:31 -!- oerjan has quit ("Good night"). 18:22:08 -!- chuck has quit ("This computer has gone to sleep"). 19:06:39 w00ts! 19:11:41 * SimonRC thinks that Colorforth rox 19:24:44 -!- puzzlet_ has joined. 19:24:44 -!- puzzlet has quit (Remote closed the connection). 20:28:43 -!- ihope has joined. 20:28:50 I'm suddenly wishing Haskell were Redivider. 20:32:49 -!- Sgeo has joined. 20:34:13 I guess Haskell does have Parsec, though, which obviously is Redivider-like. 20:35:13 ihope: why?# 20:35:19 and, for that matter, what? 20:37:37 Oh, I just have a simple parsing job that would be annoying with patterns.. 20:37:42 s/.// 20:38:13 * ihope ponders a melding of Redivider and /// 21:11:53 ihope: why code in haskell then, and not in redivider? 21:16:47 why not imbed redivider in haskell? 21:36:59 -!- chuck has joined. 21:59:20 -!- Jontte has joined. 22:01:13 hi * 2 22:01:31 -!- jix has quit ("CommandQ"). 22:08:33 hi * -1 22:11:57 oklopol: Redivider doesn't have support for threading. 22:12:21 If it did, I'd probably use it :-P 22:19:58 -!- dbc has joined. 22:28:06 -!- chuck_ has joined. 22:31:10 -!- chuck has quit (Connection reset by peer). 22:47:23 o 22:47:26 sleepz -> 22:47:35 ditto 22:47:39 * SimonRC goes to bed 22:58:56 -!- puzzlet has joined. 22:58:56 -!- puzzlet_ has quit (Remote closed the connection). 23:09:00 -!- ihope_ has joined. 23:11:15 You know, if in a type system, all "forall"s must be explicitly stated with a dependent function arrow, I think every value has exactly one type. 23:12:10 As in no more Id : a => a; only Id : All \a (a => a), which would take a value for a as its first argument. 23:13:10 And then you'd have stuff like Id Integer 3 instead of just Id 3. 23:16:42 -!- chuck_ has quit (Connection reset by peer). 23:41:30 -!- pikhq has quit (Read error: 104 (Connection reset by peer)). 23:42:57 -!- pikhq has joined. 23:56:38 -!- sebbu has quit ("@+").