Hi APLers,
first, many thanks to Mohammad, Kacper and Hans-Peter for your hints
regarding 2019/02. I learned a lot, and tried to incooperate in my
solution for 2019/03, having had a deeper look in ∘.X, outer product!
3: Grade Distribution
(https://www.dyalog.com/uploads/files/student_competition/2019_problems_phase1.pdf)
"The school's administrative department wants to publish some simple
statistics. Given anon-empty character vector of single-letter grades,
produce a 3-column, 5-row,alphabetically-sorted matrix of each grade,
the number of occurrences of that grade, andthe percentage (rounded to 1
decimal position) of the total number of occurrences ofthat grade. The
table should have a row for each grade even if there are no
occurrencesof a grade. Note: due to rounding the last column might not
total 100%. Hint: The key operator ⌸ could be useful for this problem."
(from the exercise)
∇table←gradeDistri grades;allgr
allgr←⍪'ABCDF' ⍝ all available grades
table←allgr,+/allgr ∘.= ,grades ⍝ outer product =, and sum 1s up
table←table,+/table[;2] ⍝ 3rd column with sum
table[;3]←10÷⍨⌊0.5+1000×table[;2]÷table[;3] ⍝ calculate col2÷col3 and round
⍝ for sure, rounding could also be done
⍝ with ⍕!
∇
br & many thanks for any hint! - Otto
--
Dipl. Ing. (FH) Otto Diesenbacher-Reinmüller
diesenbacher.net
Salzburg, Österreich