User talk:Nigel Galloway: Difference between revisions

no edit summary
(→‎Special_Ordered_Sets_of_Type_N: Candidate for deletion?)
No edit summary
Line 14:
:<math>a_1 + b^2</math>
This lets you avoid having to fiddle around with uploading pictures. (Mediawiki's configured to convert simple math to UNICODE for rendering, and complex stuff gets run through (La)TeX.) It's pretty awesome to use this for things like [[Continued fractions]]… –[[User:Dkf|Donal Fellows]] 21:28, 27 February 2012 (UTC)
 
==Huge Ruby example==
Hi, You've just added a simply huge example in Ruby to a page. Could you modify it to read the dict from a file or, if you insist on keeping it as it is, could you move it to a sub-page on its own. Thanks. --[[User:Paddy3118|Paddy3118]] 15:30, 10 September 2012 (UTC)
 
==Huge addition to Ledrug's page==
Hi, unless Ledrug specifically asked for the data, it seems impolite to dump so much on his page and I would urge you to remove it as it can only cause offense. --[[User:Paddy3118|Paddy3118]] 13:01, 27 October 2012 (UTC)
: That's Nigel Galloway being Nigel Galloway. The content was from [[Talk:Kaprekar numbers]], which he somehow felt very strongly the urge to remove, probably because I said something not very flattering to him there. I undid that change because deleting 30k+ talk without even a word of explanation was basically vandalism, so he decided that those should go on my talk page instead (and of course it was removed from the original place again). Come to think of it, I kinda suspect this paragraph won't survive very long, either. --[[User:Ledrug|Ledrug]] 13:47, 27 October 2012 (UTC)
 
Hi Nigel, it's the 'net. People are wrong/right and rarely polite all the time, but that doesn't mean that one can't try and carve out a good community project and get something done through the noise. How about taking a deep breath and just letting it go? You could move on to your next RC contribution and get something else done. There is rarely any material victory ''or'' loss to the people having the dispute but it can leave people too focused on the argument to the detriment of the 'feel' and reputation of the community. --[[User:Paddy3118|Paddy3118]] 16:19, 27 October 2012 (UTC)
 
==Minor tweaks to Ruby Semordnilap==
Line 45 ⟶ 36:
==[[Talk:Special_Ordered_Sets_of_Type_N#Candidate for deletion?]]==
Hi, just to make you aware .... --[[User:Paddy3118|Paddy3118]] ([[User talk:Paddy3118|talk]]) 04:38, 7 July 2013 (UTC)
 
==Thinning==
==={{header|Ruby}}===
First I define a function zs which given a point and its eight neighbours returns 1 if the point may be culled, 0 otherwise. g indicates if this is step 1 or step 2 in the task description. zs may be changed to remembers the step independently if the reader does not wish to explore the algorithm.
 
Substituting for g==0 in the code
<lang>
(ng[1][2] + ng[0][1] + ng[1+g][g]) (ng[g][1+g] + ng[2][1] + ng[1][0])
</lang>
gives (P4 P2 P8) (P2 P8 P6) in the nomenclature used in the task description.
 
Similarly substituting g==1 gives (P4 P2 P6) (P4 P6 P8).
 
This line must be correct; each of the 4 directions is ignored in one of the triples, each of [1][2], [0][1], [2][1], and [1][0] is ignored as required by the algorithm!!!!!!!--[[User:Nigel Galloway|Nigel Galloway]] ([[User talk:Nigel Galloway|talk]]) 09:43, 21 October 2013 (UTC)
<lang ruby>
# Thinning RC
# Nigel_Galloway: October 18th., 2013.
require 'csv'
s2 = CSV.read("smallRC.csv", converters: :numeric)
@r = 1
s1 = Array.new(s2.length){Array.new(s2[0].length,0)}
 
def zs(ng,g)
return 0 if ng[1][1] == 0 or (ng[1][2] + ng[0][1] + ng[1+g][g]) == 3 or (ng[g][1+g] + ng[2][1] + ng[1][0]) == 3
t = -1; ng.each{|n| n.each{|g| t+=g}}; return 0 unless (2 <= t and t <= 6)
t=-1;[ng[0][1],ng[0][2],ng[1][2],ng[2][2],ng[2][1],ng[2][0],ng[1][0],ng[0][0],ng[0][1]].each{|n| t+=(t==0 or t==2)? n : 1-n}
return 0 unless t==1 or t==2
@r=1
end
</lang>
 
To reproduce the output described in the task description it is necessary to call zs first with g=1 (though either way produces a valid thinned output): See [[Zhang-Suen thinning algorithm/bigRC.csv]] for the input file contents
<lang ruby>
s2.each{|row| row.each{|col| print(col==1? "#": " ")}; print("\n")}
while @r == 1
@r = 0
(1...s2.length-1).each{|n| (1...s2[0].length-1).each{|g| s1[n][g] = s2[n][g] - zs(s2[n-1..n+1].collect{|n| n[g-1..g+1]},1)}}
(1...s2.length-1).each{|n| (1...s2[0].length-1).each{|g| s2[n][g] = s1[n][g] - zs(s1[n-1..n+1].collect{|n| n[g-1..g+1]},0)}}
end
s2.each{|row| row.each{|col| print(col==1? "#": " ")}; print("\n")}
</lang>
{{out}}
<pre>
################# #############
################## ################
################### ##################
######## ####### ###################
###### ####### ####### ######
###### ####### #######
################# #######
################ #######
################# #######
###### ####### #######
###### ####### #######
###### ####### ####### ######
######## ####### ###################
######## ####### ###### ################## ######
######## ####### ###### ################ ######
######## ####### ###### ############# ######
# ########## #######
## # #### #
# # ##
# # #
# # #
# # #
############ #
# # #
# # #
# # #
# # #
# ##
# ############
### ###
</pre>
2,172

edits