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 = {Re@#, Im@#} & /@ Fold[Join[#1, Last@#1 + I^#2 Range@#2/2] &, {0}, Range@140]; ListPlot[s, Joined -> True, Epilog -> {Point /@ s[[Prime@Range@PrimePi@Length@s]]}]
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!}]]
Fractals, by Stephan Leibbrandt
Make a “heart-shaped box of wires and springs” with this nifty line of code!
Image@Compile[{}, Block[{i, x, p}, Table[i = 0; x = 0. I; p = r + I c; While[Abs@x 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
Michael Croucher
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]
ColinD
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.
The Raspberry Pi Guy
*Desperately searches for a Mathematica related pun*
The Raspberry Pi Guy
meltwater
Mathematica walked into a bar graph…perhaps it was a sine.
liz
*Badoom tish!*
Matt
pun found *head desk*
SimonFD
Well, that just sums it up……
The Raspberry Pi Guy
AndrewS
I’ve got nothing more to add…
Maths puns can be so divisive!
ukscone
you’ve gone on a bit of a tangent. maybe we need someone to cosine your sectioning papers
liz
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.
Jerry Wasinger
I love that bit!
Jim Manley
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.
Allison Taylor
Jim, that sounds great! We’d love to hear how it goes tonight.
RobPurcell
It’s a “heart-shaped box of springs and wires” ackchewerly ;-)
Cool stuff though :-)
Sumit Ghosh
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]
AnnO
Is there a missing square bracket?
Sumit Ghosh
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]
Sumit Ghosh
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]
Sumit Ghosh
for some reason it is not showing less than (” None,
Jonathan Morris
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
bertwert
Did you make that up?
bertwert
If you did it is awesome :)
Douglas6
A neutron walks into a bar and orders a beer. Bartender says ‘No charge!’
Edward Czajka
√69 = 8.something
bertwert
How do you install mathematica?
Lars Hohmuth
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
bertwert
I don’t have latest and I am to lazy to reinstall everything :)
bertwert
Thanks for that link :)
AndrewS
There’s also this blog post
http://www.raspberrypi.org/archives/5282
Tom
Shades of APL! The return of the incomprehensible one-liner.
Fred Klingener
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.
Rick
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…
u8nc
that ruuber duck looks so fat , ratio of circumference to diameter must be 4!
Bert
What? Checking for primality with regular expressions on a unary representation of the number? Yuck.
How about a plain old PrimeQ[n]?
Martin
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}}]
Martin
And here is the result, it was lost from my first post: http://i.imgur.com/v4kuEUT.png
Giorgos
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[
Graphics3D@{Red, s@p[i][[1, 1]], Green,
Rotate[Scale[s[], {t, 1, 2}, {0, 0, 3}], #, {1, 0, 0}] & /@ {- t,
t}}, {i, p[]}]
Nigel
I tried the Borg Cube, but it complains that ‘RotateLeft’ needs a parameter – has anyone else tried & corrected this?
Allison Taylor
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!}]]
Jeff
I had exactly the same problem. I even tried different values – no success :-(
Aaron
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:
Image@Compile[{},
Block[{i, x, p}, Table[i = 0; x = 0. I; p = r + I c;
While[Abs@x <= (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!
lab eas
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.
James Hughes
The Raspi isn’t an Open Source Project. It’s an educational project, so the requirements are somewhat more pragmatic.
Comments are closed