Give us your best (Mathematica) one-liner

Here’s another guest post from Allison Taylor at Wolfram, which is part of a series that will help smooth your introduction to Mathematica. Thanks Allison: over to you!

At our 2010 and 2011 Wolfram Technology Conferences, attendees were challenged to come up with their best one-liners—pieces of code written in less than one line, or under 140 characters. The outputs were then judged by their complexity, usefulness, and general cool-factor. The submissions turned out to be quite diverse, thought provoking, and most of all, pretty nifty illustrations of the efficiency of the Wolfram Language.

So it only seemed fitting to tailor some of these small bundles of powerful code to the equally small-but-mighty Raspberry Pi. (To run these, you must first open the front-end version of Mathematica on your Pi by clicking the Mathematica icon.)

Echidnahedron (AKA, the Mathematica Spikey), by Radko Kriz

We couldn’t help but start off with teaching you how to make a cool, geometric logo similar to the one that has been representing Mathematica and Wolfram Research for over 25 years! The echidnahedron is a “stellation” of the icosahedron—basically, it takes the faces of the icosahedron and turns them into infinitely extending spikes. Or Spikey, as we like to call it.

Graphics3D[{Opacity[.8], Glow[RGBColor[1,0,0]], EdgeForm[White], Lighting ->
None, PolyhedronData["Echidnahedron", "Faces"]}]

The Ulam Spiral, by Dave Lawrence

Along a similar mathy theme, the Ulam Spiral is a beautiful way to visualize prime numbers. The spiral is contructed on an integer coordinate plane, starting at (0,0) and spiraling outward through every point that is prime.

s = {[email protected]#, [email protected]#} & /@
Fold[Join[#1, [email protected]#1 + I^#2 [email protected]#2/2] &, {0},
[email protected]]; ListPlot[s, Joined -> True,
Epilog -> {Point /@ s[[[email protected]@[email protected]@s]]}]

Not the biggest bang Stanislaw Ulam ever made, but neat nonetheless

Test If an Integer Is a Prime Number, by Sascha Kratky

And while we’re on the subject of prime numbers, there are tons of math and computation examples where this little gem of code will likely come in handy. Run this function with any integer, and it will return True if it is prime and False if it is not.

RegExPrimeQ[n_Integer] := !
StringMatchQ[StringJoin[Table["1", {Abs[n]}]],
RegularExpression["^1?$|^(11+?)\\1+$"]] RegExPrimeQ[17]

Make Your Own Borg Cube, by Alex Hirsbrunner

You know you’ve always wanted to make one. By tiling a bunch of randomly generated cubes of random sizes and colors, this code will create your very own one-of-a-kind Borg cube to assimilate all your friends into the hive mind.

p := Random[];
r = RotateLeft;
Graphics3D[
Table[{RGBColor[.2, p, .2],
Cuboid[l =
r[{z, p, p}, a], l +
r[p/
8 {Sign[z - .5], p, p}, a]]}, \ {z, {0, 1}}, {a, 0, 2}, {6!}]]

Your biological and technological distinctiveness will be added to our own.

Fractals, by Stephan Leibbrandt

Make a “heart-shaped box of wires and springs” with this nifty line of code!

[email protected][{},
Block[{i, x, p},
Table[i = 0; x = 0. I; p = r + I c;
While[[email protected]
Tanh[Power[i/9^3, (7)^-1]], {c, -1, 1, .01}, {r, -2, 1,.01}]]][]

Rubber Duck, by Paul Abbott

And we’ll leave you with this cute little creation, made using a series of spherical functions, because it’s just adorable, isn’t it?

SphericalPlot3D[
Log[\[Theta]] + Sin[\[CurlyPhi]], {\[Theta], 0,
2 \[Pi]}, {\[CurlyPhi], 0, 2 \[Pi]}, Boxed -> False, Axes -> False,
PlotStyle -> Yellow, Mesh -> None, PlotPoints -> 30]

Inspired? Show us what Raspberry Pi oriented one-liners you can come up with!

44 comments

Avatar

The equation that says ‘Hi’

Plot3D[Exp[-x^2 – 0.5*y^2]*Cos[4 x] +
Exp[-3 ((x + 0.5)^2 + 0.5 y^2)], {x, -3, 3}, {y, -5, 5},
PlotRange -> {-0.001, 0.001}, PlotPoints -> 40]

Avatar

Kudos to you Michael – my first thought when I saw this post was to wonder if anyone had come up with a neat Hello World in a one liner.

Kudos.

Avatar

*Desperately searches for a Mathematica related pun*

The Raspberry Pi Guy

Avatar

Mathematica walked into a bar graph…perhaps it was a sine.

Avatar

*Badoom tish!*

Avatar

pun found *head desk*

Avatar

Well, that just sums it up……

Avatar

I’ve got nothing more to add…

Maths puns can be so divisive!

Avatar

you’ve gone on a bit of a tangent. maybe we need someone to cosine your sectioning papers

Avatar

Not a Mathematica joke, but my favourite maths joke is:

Q. What does the B in Benoit B Mandelbrot stand for?

A. Benoit B Mandelbrot.

Avatar

I love that bit!

Avatar

There are students in our school who are heavily into art, but “hate” math(s) without being aware of what can be produced beyond the tired old plot of quadratic equations in 2-D that is pretty much as far as most students can stand to produce. Now I have a flute named Mathematica with which to herd those cats, or some such other completely broken metaphor. We have an open house tonight where I’ll be showing off our recently-acquired bevy of boards de Pi and I’ll be setting up a number of them with some very tantalizing Mathematica plots. I’ll challenge the students, parents, and other teachers to come up with some of their own one-liners.

Thanks again to Wolfram for making this available to all of us in the Pi and educational communities at no charge, making the price of the Pi an even more ridiculously incredible value than it already is for just the board.

Avatar

Jim, that sounds great! We’d love to hear how it goes tonight.

Avatar

It’s a “heart-shaped box of springs and wires” ackchewerly ;-)

Cool stuff though :-)

Avatar

a small flower

RevolutionPlot3D[Tanh[2 r], {r, 0, 1.2},
RegionFunction -> Function[{x, y}, (x^2 + y^2)^3 None, ColorFunction -> “RoseColors”, Boxed -> False,
Axes -> False, MaxRecursion -> 5]

Avatar

Is there a missing square bracket?

Avatar

Sorry, there is a part missing in the syntax. This is the correct one.

RevolutionPlot3D[Tanh[2 r], {r, 0, 1.2},
RegionFunction -> Function[{x, y}, (x^2 + y^2)^3 None, ColorFunction -> “RoseColors”, Boxed -> False,
Axes -> False, MaxRecursion -> 5]

Avatar

RevolutionPlot3D[Tanh[2 r], {r, 0, 1.2}, RegionFunction -> Function[{x, y}, (x^2 + y^2)^3 None, ColorFunction -> “RoseColors”, Boxed -> False, Axes -> False, MaxRecursion -> 5]

Avatar

for some reason it is not showing less than (” None,

Avatar

An atom “walks” over to his friend and says,’Whoa! I think you lost your electron.” He replies,”No I didn’t.” “Are you sure??” “Positive”

hehehe

Avatar

Did you make that up?

Avatar

If you did it is awesome :)

Avatar

A neutron walks into a bar and orders a beer. Bartender says ‘No charge!’

Avatar

√69 = 8.something

Avatar

How do you install mathematica?

Avatar

Mathematica and Wolfram Language are included in the latest Noobs distribution. After downloading and installing it they show up on the desktopm.

Some information on alternative ways of installing them is available on the Wolfram Community website
http://community.wolfram.com/groups/-/m/t/157340?p_p_auth=U6GWwn28

Avatar

I don’t have latest and I am to lazy to reinstall everything :)

Avatar

Thanks for that link :)

Avatar

There’s also this blog post
http://www.raspberrypi.org/archives/5282

Avatar

Shades of APL! The return of the incomprehensible one-liner.

Avatar

The APL conferences were the geekiest I ever attended. Someone would walk in wearing a tee shirt with two or three inscrutable characters printed on it and half the room would fall on the floor laughing.

Avatar

Mathematics One-Liners?
There are 10 types of people in this world: those who understand binary, and those who don’t.

You didn’t say Mathematics? Oh…

Avatar

that ruuber duck looks so fat , ratio of circumference to diameter must be 4!

Avatar

What? Checking for primality with regular expressions on a unary representation of the number? Yuck.
How about a plain old PrimeQ[n]?

Avatar

I tried to draw a volumetric Raspberry Pi logo with 140 characters or less, but I couldn’t manage it. This is my best shot, with 162 characters:
Graphics3D[{Red,
Sphere /@ PolyhedronData["Icosidodecahedron"][[1, 1]], Green,
GeometricTransformation[
Cylinder[], {{# {1, 0, -1}, {0, 0, .3}, {1, 1, -1}}, {-# .1, 0,
1.5}}] & /@ {-1, 1}}]

Avatar

And here is the result, it was lost from my first post: http://i.imgur.com/v4kuEUT.png

Avatar

Hey Martin,

That’s a really cool idea! I modified your code to just 140 characters and added a bit of coolness to it (it’s upside down but a minus would take the characters over the limit):

s = Sphere; t = .3; p = PolyhedronData; Manipulate[
[email protected]{Red, [email protected][i][[1, 1]], Green,
Rotate[Scale[s[], {t, 1, 2}, {0, 0, 3}], #, {1, 0, 0}] & /@ {- t,
t}}, {i, p[]}]

Avatar

I tried the Borg Cube, but it complains that ‘RotateLeft’ needs a parameter – has anyone else tried & corrected this?

Avatar

Hm, maybe it doesn’t like r=RotateLeft;

Try:

p := Random[];
Graphics3D[
Table[{RGBColor[.2, p, .2],
Cuboid[l = RotateLeft[{z, p, p}, a],
l + RotateLeft[p/8 {Sign[z – .5], p, p}, a]]}, {z, {0, 1}}, {a, 0,
2}, {6!}]]

Avatar

I had exactly the same problem. I even tried different values – no success :-(

Avatar

Looking at the one-liners page here it would appear the the fractals example is missing a fair bit of code above. The correct code for the fractal appear like it should be:

[email protected][{},
Block[{i, x, p}, Table[i = 0; x = 0. I; p = r + I c;
While[[email protected] <= (2)^-1 && i < 9^3, x = x^2 + p; ++i];
Tanh[Power[i/9^3, (7)^-1]], {c, -1, 1, .01}, {r, -2, 1, .01}]]][]

However this still does not work correctly. Must just be a tiny little error, but my brain is too fried to work it out right now!

Avatar

Wolfram is unsuited to an OPEN-source project like rPi:
1= bloated code-base;
2= semi-secretive tutorial-docos, where a few words of Walt-Disney
style text, is fetched for each massive [and repeated] commercial bloat.
3= docos/tutorials are LOCKED to Wolfram, requiring an always-on inet
connection, and willingness to have outsiders hold-your-hand and
suck your brains out.

Avatar

The Raspi isn’t an Open Source Project. It’s an educational project, so the requirements are somewhat more pragmatic.

Leave a Comment

Comments are closed