Farey序列  
    |   
               
              
              n阶Farey序列是由0到1之间的、分母不超过n的最简分数组成的序列。
  
              按升序打印50阶Farey序列。即$0/1, 1/50, 1/49, \ldots$ 
  
               |  
              
              本题难度: 
              
               
  
             |  
           
          
          
          
            
             解答  
    |   
             
            Farey序列的标准生成方式是取$a/b=0/1$和$c/d=1/1$,将$(a+b)/(c+d)$插入序列并保持有序。之后不断遍历序列,取相邻两项并重复这一过程。
  
            此处为缩短长度,直接生成分子分母的所有可能组合,利用标准库fractions处理最简化和格式化,用set去重后再排序,并单独打印整数$0/1$和$1/1$。
  
            最终代码有五行。
  
            代码长度:122字节 vs. 全站第一:66字节。
  
              
from fractions import*
p=print
p("0/1")
for a in sorted({Fraction(j//50+1,j%50+1)for j in range(2500)}):a<1==p(a)
p("1/1")
 
               |  
           
         
        
            
            |    |