------ art_29446_4187177.1208952852932 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline On Sat, Apr 19, 2008 at 10:39 AM, Matthew Moss <matthew.moss / gmail.com> wrote: > Quiz #160 > Triangle Area Here's my solution. Nothing fancy. Good old Heron's formula. I had actually started with the cross product of the vectors describing two sides of a triangle, but since Vector doesn't have an outer_product method and implementing that for N dimentions got kind of ugly, I switched to the alternative that's also dimension-independent, which is still four lines of code :-) Marcelo ------ art_29446_4187177.1208952852932 Content-Type: application/octet-stream; name=triangle_area Content-Transfer-Encoding: base64 X-Attachment-Id: f_ffdvao9l0 Content-Disposition: attachment; filename=triangle_area IyEvdXNyL2Jpbi9lbnYgcnVieQoKcmVxdWlyZSAnbWF0cml4JwoKUkFORE9NX1BUID0gbGFtYmRh IHsgVmVjdG9yW3JhbmQoMTAxKS01MCwgcmFuZCgxMDEpLTUwXSB9CgpjbGFzcyBUcmlhbmdsZQog ICAgZGVmIGluaXRpYWxpemUoYSwgYiwgYykKICAgICAgICBAYSwgQGIsIEBjID0gYSwgYiwgYwog ICAgZW5kCgogICAgZGVmIFRyaWFuZ2xlLnJhbmRvbShmb28gPSBSQU5ET01fUFQpCiAgICAgICAg VHJpYW5nbGUubmV3KGZvby5jYWxsLCBmb28uY2FsbCwgZm9vLmNhbGwpCiAgICBlbmQKCiAgICBk ZWYgW10oaSkKICAgICAgICBbQGEsIEBiLCBAY11baV0KICAgIGVuZAoKICAgIGRlZiBhcmVhCiAg ICAgICAgYSA9IChAYi1AYSkucgogICAgICAgIGIgPSAoQGMtQGEpLnIKICAgICAgICBjID0gKEBi LUBjKS5yCiAgICAgICAgcyA9IDAuNSooYStiK2MpCiAgICAgICAgcmV0dXJuIE1hdGg6OnNxcnQo cyoocy1hKSoocy1iKSoocy1jKSkKICAgIGVuZAoKICAgIGRlZiBpbnNwZWN0CiAgICAgICAgIlRy aWFuZ2xlWyN7QGF9LCAje0BifSwgI3tAY31dIgogICAgZW5kCgogICAgYWxpYXMgdG9fcyBpbnNw ZWN0CmVuZAoKcmVxdWlyZSAidGVzdC91bml0IgoKVE9MID0gMC4wMDAxCgpjbGFzcyBUcmlhbmds ZQogICAgZGVmIFRyaWFuZ2xlLltdKCphcmdzKQogICAgICAgIFRyaWFuZ2xlLm5ldygqYXJncykK ICAgIGVuZAplbmQKCmNsYXNzIFRlc3RUcmlBcmVhIDwgVGVzdDo6VW5pdDo6VGVzdENhc2UKCiAg ICBkZWYgdGVzdF8zcHRfZGVnZW4KICAgICAgICBhID0gUkFORE9NX1BULmNhbGwKICAgICAgICB0 ID0gVHJpYW5nbGVbYSwgYSwgYV0KICAgICAgICBhc3NlcnRfZXF1YWwoMCwgdC5hcmVhKQogICAg ZW5kCgogICAgZGVmIHRlc3RfMnB0X2RlZ2VuCiAgICAgICAgYSwgYiA9IFJBTkRPTV9QVC5jYWxs LCBSQU5ET01fUFQuY2FsbAogICAgICAgIHQgPSBUcmlhbmdsZVthLCBiLCBiXQogICAgICAgIGFz c2VydF9lcXVhbCgwLCB0LmFyZWEpCiAgICBlbmQKCiAgICBkZWYgdGVzdF9lYXN5CiAgICAgICAg dCA9IFRyaWFuZ2xlW1ZlY3RvclswLCAwXSwgVmVjdG9yWzMsIDBdLCBWZWN0b3JbMCwgMV1dCiAg ICAgICAgYXNzZXJ0X2luX2RlbHRhKDEuNSwgdC5hcmVhLCBUT0wpCiAgICBlbmQKCiAgICBkZWYg dGVzdF9tb3N0bHlfZWFzeQogICAgICAgIHQgPSBUcmlhbmdsZVtWZWN0b3JbLTExLCAwXSwgVmVj dG9yWzUsIDBdLCBWZWN0b3JbMCwgM11dCiAgICAgICAgYXNzZXJ0X2luX2RlbHRhKDI0LCB0LmFy ZWEsIFRPTCkKICAgIGVuZAoKICAgIFNBTVBMRVMgPSB7CiAgICAgICAgVHJpYW5nbGVbVmVjdG9y Wy00MiwgICA0XSwgVmVjdG9yWy0yNiwgLTM0XSwgVmVjdG9yWyAgMiwgICA4XV0gPT4KICAgICAg ICAgICAgODY4LjAsCiAgICAgICAgVHJpYW5nbGVbVmVjdG9yWyA0NSwgLTQ0XSwgVmVjdG9yWyAg MSwgIDQzXSwgVmVjdG9yWyA0MiwgIDQ4XV0gPT4KICAgICAgICAgICAgMTg5My41LAogICAgICAg IFRyaWFuZ2xlW1ZlY3RvclstMjQsICAyOV0sIFZlY3RvclsgNDIsICAtMV0sIFZlY3RvclsgMTAs ICA0M11dID0+CiAgICAgICAgICAgIDk3Mi4wLAogICAgICAgIFRyaWFuZ2xlW1ZlY3RvclsgNDgs IC0xOV0sIFZlY3RvclstMTksICAzN10sIFZlY3RvclstMTUsICAzNl1dID0+CiAgICAgICAgICAg IDc4LjUsCiAgICAgICAgVHJpYW5nbGVbVmVjdG9yWy0xMCwgLTQwXSwgVmVjdG9yWy0zNSwgLTE5 XSwgVmVjdG9yWyAgMSwgIDMzXV0gPT4KICAgICAgICAgICAgMTAyOC4wLAogICAgICAgIFRyaWFu Z2xlW1ZlY3RvclsgMjgsICAyM10sIFZlY3RvclstNDYsICAzMV0sIFZlY3RvclstMzksICAgNV1d ID0+CiAgICAgICAgICAgIDkzNC4wLAogICAgICAgIFRyaWFuZ2xlW1ZlY3RvclstMzIsICAxN10s IFZlY3RvclstNTAsICAtOF0sIFZlY3RvclstMzksICAyN11dID0+CiAgICAgICAgICAgIDE3Ny41 LAogICAgICAgIFRyaWFuZ2xlW1ZlY3RvclsgNDAsIC0xOV0sIFZlY3RvclsgMzksIC0zNF0sIFZl Y3RvclstMzcsIC0xNV1dID0+CiAgICAgICAgICAgIDU3OS41LAogICAgICAgIFRyaWFuZ2xlW1Zl Y3RvclsgNDcsIC0zNF0sIFZlY3RvclsgMjYsIC0zN10sIFZlY3RvclsgNTAsICAtN11dID0+CiAg ICAgICAgICAgIDI3OS4wLAogICAgICAgIFRyaWFuZ2xlW1ZlY3RvclstNDksICA0Nl0sIFZlY3Rv clsgMjksICA0Nl0sIFZlY3RvclsgIDUsIC0zNF1dID0+CiAgICAgICAgICAgIDMxMjAuMAogICAg fQoKICAgIGRlZiB0ZXN0X3NhbXBsZXMKICAgICAgICBTQU1QTEVTLmVhY2ggZG8gfHQsIGF8CiAg ICAgICAgICAgIGFzc2VydF9pbl9kZWx0YShhLCB0LmFyZWEsIFRPTCkKICAgICAgICBlbmQKICAg IGVuZAplbmQK ------ art_29446_4187177.1208952852932--