Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Spiral Numbers

Name: Anonymous 2009-05-01 20:05

Hello /prog/, I have a challenge for you.

It's called spiral numbers.  Being the expert programmers you are you've probably already have heard of it, but if not it goes a little something like this:

Given two positive integers a and b, output on the screen a rectangle with width = b numbers and height = a rows, containing the numbers from 1 to a*b in a spiraling fashion, as shown below.  For a = 4 and b = 3, the output is:

    1    2    3
    10    11    4
    9    12    5
    8    7    6

The columns must be properly n+1 positions, where n is the number of digits in the decimal representation of a *b.

Write a program that prompts for a and b and then displays the appropriate rectangle of numbers.

Example:
    If a = 3 and b = 4, the above rectangle should be

    1    2    3    4
    10    11    12    5
    9    8    7    6


Here's some more examples from my own implementation written in snake tongue.



Have fun!
H:\Documents\Python\Program of the week>"april15 Spiral.py"
Width:8
Height:12
1       2       3       4       5       6       7       8
36      37      38      39      40      41      42      9
35      64      65      66      67      68      43      10
34      63      84      85      86      69      44      11
33      62      83      96      87      70      45      12
32      61      82      95      88      71      46      13
31      60      81      94      89      72      47      14
30      59      80      93      90      73      48      15
29      58      79      92      91      74      49      16
28      57      78      77      76      75      50      17
27      56      55      54      53      52      51      18
26      25      24      23      22      21      20      19

Name: Anonymous 2009-05-02 18:14

>>31
I find this result laughable. The time complexity of >>9 is clearly better, but because YOUR system can't allocate enough memory for it to run in larger test cases you write it off as worse in a SPEED benchmark on account of small test cases where the results differ by a couple of seconds? The point of a speed benchmark it to ignore memory consumption and look at the growth rate of time against different input- if you want to compare memory requirements you should go and do that, don't try and mix and match things to suit your case, and in particular don't try and say one algorithm is faster because it solves a problem two seconds faster for an extremely trivial test case.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List