All about flooble | fun stuff | Get a free chatterbox | Free JavaScript | Avatars
 perplexus dot info

 Increasing sequences (Posted on 2015-11-30)
List all the 3X3 arrays of nine distinct positive digits such that each of the rows and each of the columns is an increasing sequence.
Example: 1,2,5; 3,4,7; 6,8,9.

 See The Solution Submitted by Ady TZIDON No Rating

Comments: ( Back to comment list | You must be logged in to post comments.)
 computer solution | Comment 1 of 3
There are 42:

```123
456
789

123
457
689

123
458
679

123
467
589

123
468
579

124
356
789

124
357
689

124
358
679

124
367
589

124
368
579

125
346
789

125
347
689

125
348
679

125
367
489

125
368
479

126
347
589

126
348
579

126
357
489

126
358
479

127
348
569

127
358
469

134
256
789

134
257
689

134
258
679

134
267
589

134
268
579

135
246
789

135
247
689

135
248
679

135
267
489

135
268
479

136
247
589

136
248
579

136
257
489

136
258
479

137
248
569

137
258
469

145
267
389

145
268
379

146
257
389

146
258
379

147
258
369

```

DefDbl A-Z
Dim wd(10) As String, w As String, sz, crlf\$
Function mform\$(x, t\$)
a\$ = Format\$(x, t\$)
If Len(a\$) < Len(t\$) Then a\$ = Space\$(Len(t\$) - Len(a\$)) & a\$
mform\$ = a\$
End Function

Text1.Text = ""
crlf\$ = Chr(13) + Chr(10)
Form1.Visible = True

a\$ = "123456789": h\$ = a
Do
DoEvents
good = 1
For row = 1 To 7 Step 3
For col = 1 To 2
If Mid(a, row + col, 1) < Mid(a, row + col - 1, 1) Then good = 0: Exit For
Next
If good = 0 Then Exit For
Next
For col = 0 To 2
For row = 4 To 7 Step 3
If Mid(a, row + col, 1) < Mid(a, row - 3 + col, 1) Then good = 0: Exit For
Next
If good = 0 Then Exit For
Next

If good Then
Text1.Text = Text1.Text & Left(a, 3) & crlf & Mid(a, 4, 3) & crlf & Right(a, 3) & crlf & crlf
ct = ct + 1
End If

permute a
Loop Until a = h

Text1.Text = Text1.Text & crlf & ct & " done"

End Sub

Sub permute(a\$)

x\$ = ""
For i = Len(a\$) To 1 Step -1
l\$ = x\$
x\$ = Mid\$(a\$, i, 1)
If x\$ < l\$ Then Exit For
Next

If i = 0 Then
For j = 1 To Len(a\$) \ 2
x\$ = Mid\$(a\$, j, 1)
Mid\$(a\$, j, 1) = Mid\$(a\$, Len(a\$) - j + 1, 1)
Mid\$(a\$, Len(a\$) - j + 1, 1) = x\$
Next
Else
For j = Len(a\$) To i + 1 Step -1
If Mid\$(a\$, j, 1) > x\$ Then Exit For
Next
Mid\$(a\$, i, 1) = Mid\$(a\$, j, 1)
Mid\$(a\$, j, 1) = x\$
For j = 1 To (Len(a\$) - i) \ 2
x\$ = Mid\$(a\$, i + j, 1)
Mid\$(a\$, i + j, 1) = Mid\$(a\$, Len(a\$) - j + 1, 1)
Mid\$(a\$, Len(a\$) - j + 1, 1) = x\$
Next
End If
End Sub

 Posted by Charlie on 2015-11-30 14:48:11

 Search: Search body:
Forums (44)