鱼C论坛

 找回密码
 立即注册
楼主: jerryxjr1220

[技术交流] python小练习(058):10来行代码求解约瑟夫环问题

[复制链接]
发表于 2017-9-17 09:44:58 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-10-23 21:44:04 | 显示全部楼层
怎么做到的呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-13 21:45:39 | 显示全部楼层
不懂怎么写,看一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-21 19:46:52 | 显示全部楼层
从连接跳过来的,看看,学习一下.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-21 12:23:03 | 显示全部楼层
有思路了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-21 14:43:13 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-26 15:26:27 | 显示全部楼层
  1. def yue(n,k):
  2.     list_y = [i for i in range(n)]
  3.     t = list_y.pop(k-1)
  4.     while len(list_y) > 1:
  5.         if len(list_y) < k:
  6.             t1 = (k-1)%len(list_y)
  7.             t = list_y.pop(t1)
  8.             list_y = list_y[t1:] + list_y[:t1]
  9.         else:
  10.             list_y = list_y[k-1:] + list_y[:k-1]
  11.             t = list_y.pop(k-1)
  12.     print(list_y.pop()+1)
  13. yue(100,3)
  14. yue(10000,6)
  15.         
  16.         
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-26 17:43:59 | 显示全部楼层
效率一点都比不上你
  1.         
  2. def yue1(n,k):
  3.     list_x = [i for i in range(n)]
  4.     list_y = list_x[:]
  5.     t = k-1
  6.     while len(list_x) > 1:
  7.         if len(list_x)<k:
  8.             list_x.pop(t1)
  9.             t1 = (t1+k-1)%(len(list_x))
  10.         else:
  11.             for i,j in enumerate(list_x):
  12.                 if i%k == t:
  13.                     c = i
  14.                     list_y.remove(j)
  15.             t1 = t = (c + k - len(list_x))
  16.             list_x = list_y[:]
  17.     print(list_x.pop()+1)
  18.         
  19. yue1(100000,6)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-1 14:17:57 | 显示全部楼层
我是来抄答案的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-21 20:45:36 | 显示全部楼层
la'la
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-21 21:29:03 | 显示全部楼层
看一看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-27 11:19:13 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-7 17:16:22 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-10 12:45:33 | 显示全部楼层
我想看看,源码,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-10 13:47:00 | 显示全部楼层
我来看看结果。我的想法是,定义两个变量,一个变量为人数n,一个变量为k,然后循环N次,每次K+=k,最终K/n的余数就是最后剩下的人
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-12 18:12:27 | 显示全部楼层
看看帖子里藏了啥好东西~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-13 08:17:06 | 显示全部楼层
看看帖子里藏了啥好东西~~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-22 21:19:43 | 显示全部楼层
    num = int(input('多少人围成一圈:'))
    list1 = list(range(1, num + 1))
    n = 2
    while len(list1) > 1:
        list1.pop(n)
        n = (n + 2) % len(list1)
    print('最后留下的是原来第%d号'%list1[0])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-23 14:04:25 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-23 17:23:33 | 显示全部楼层
本帖最后由 badaoqingchen 于 2018-4-23 17:32 编辑
  1. x = range(1, n+1)

  2. while 1:
  3.     if len(x) == 1:
  4.         print x[0]
  5.         break
  6.     if len(x) == 2:
  7.         print x[1]
  8.         break
  9.     x1 = len(x)%3
  10.     x0 = []
  11.     for i in x:
  12.         if (x.index(i)+1) %3 == 0:
  13.             print i
  14.             x0.append(i)

  15.     for i in x0:
  16.         x.remove(i)
  17.             
  18.     for i in range(x1):
  19.         x.insert(0,x[-1])
  20.         x = x[:-1]
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 01:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表