# Posts tagged Python

## Combinatorial Algorithms

0Combinatorial algorithms(permutations, combinations, powersets, subsets et, al) had never been my forte.

Infact, I was quite scared of them.

Presumably an irrational fear that stuck with after a failed effort in my graduate years.

No matter, This weekend, I set out to remedy that.

I didn’t want to read on the algorithms before implementing and decided I’d go pencil-and-paper and implement one that occurs naturally to me.

Here goes the result of that –

## Project Euler Problem 22

0Whilst trying Project Euler problems, I often write a prototype in Python before trying out an implementation in Haskell.

This problem however was screaming for “Functional Programming”.

In fact this time around, I started with a Haskell implementation and went on to translate to Python just for kicks. 🙂

Suffice to say, I am very pleased with myself. 😀

import Char

import List

names = [<List of names from problem specification>]

{- For each string s in list, Calculate sum of the characters’ alpha positions -}

sumChars :: [String] -> [Int]

sumChars [] = []

sumChars (x:xs) =

(foldl (\acc ltr -> acc + (ord(ltr)-ord(‘A’) + 1)) 0 x) : sumChars xs

main = do

let sortedNames = sort(names)

let zippedSumAndIndex = zip [1 .. length(sortedNames)] (sumChars sortedNames)

let total = foldl (\x y -> x + fst(y) * snd(y)) 0 zippedSumAndIndex

print total

## </2008> <2009>

3First things first, Happy new year one and all.

It’d be almost sinful if a programming blog doesn’t start with a “Hello World!”.

Oh That’s but a cliche, right?

Wrong.

Not if you use exotic languages, I say.

How about a “Hello World!” in one of the smallest Turing complete language, Brainfuck?