那些有趣的网站系列(十四)

苏生不惑第247篇原创文章,将本公众号设为星标,第一时间看最新文章。

之前分享过有趣的网站系列:

那些有趣的网站

那些有趣的网站(二)

那些有趣的网站系列(三)

那些有趣的网站系列(四)

那些有趣的网站系列(五)

那些有趣的网站系列(六)

那些有趣的网站系列(七)

那些有趣的网站系列(八)

那些有趣的网站系列(九)

那些有趣的网站系列(十)

那些有趣的网站系列(十一)

那些有趣的网站系列(十二)

那些有趣的网站系列(十三)

这是系列第14篇。

一键生成卡通图片

上传图片一键生成卡通图片https://toonme.com/
生成效果:

便携小空调

为你的夏日带去清凉,点击底部按钮有空调的声音https://ac.yunyoujun.cn/ ,文末点击阅读原文体验。类似的还有个夏日清凉小风扇 https://fan.elpsy.cn/

360度旋转的高清素材

这里的高清素材可以360度旋转,想要什么角度就什么角度,再也不用担心素材不合适了 https://www.pixelsquid.com/

在线版macOS

之前分享过在线版Windows xp 网站https://winxp.vercel.app/,https://geekprank.com,现在也可以在浏览器里体验一下macOS 系统了 https://macos.vercel.app/ ,这个网站还是开源的https://github.com/puruvj/macos-web

经典旧物

这个网站收集了近100年来一些经典旧物的声音,比如老式固定电话的拨号声音、磁带机装卡带的声音、打字机敲键盘的声音、照相机拨交卷后按快门的声音 https://www.conservethesound.de/

电影日历

每天为片荒者分享一部优秀电影 https://cikeee.com/, 想找更多电影资源见之前文章清明小长假不无聊:分享一大波影视网站和APP,轻松看全网视频

人类时钟

这个网站像时钟一样展示一天里的 1440 分钟,每分钟配上一张来自世界各地的照片 ,每过一分钟页面会自动刷新 https://humanclock.com/

微软数学

获取数学题的逐步求解过程,你的数学老师就在此https://math.microsoft.com/zh/ ,还提供安卓和ios客户端。

世界各地景点直播

这里可以看世界各地景点的直播,足不出户看世界https://www.skylinewebcams.com/

如果文章对你有帮助还请 点赞/在看/分享 三连支持下, 感谢各位!

公众号苏生不惑

扫描二维码关注或搜索微信susheng_buhuo
狼、羊、菜和农夫过河问题是一个经典的逻辑谜题,也是一道有趣的算法问题。问题描述如下: 农夫带着一只狼、一只羊和一筐菜要过河。但是他的船很小,只能装下他和一样物品。如果农夫不在场,狼会吃掉羊,羊会吃掉菜。请问农夫应该如何安排过河顺序,才能保证所有物品都安全过河? 解决这个问题的常用方法是搜索算法,具体步骤如下: 1. 定义状态:用一个元组表示状态,例如 (1, 0, 1, 0) 表示农夫、狼、羊和菜在左岸,而 (0, 1, 0, 1) 表示农夫、狼、羊和菜在右岸。 2. 定义操作:定义所有可能的操作,例如 (1, 0, 1, 0) 到 (0, 1, 0, 1) 可以通过带着狼和羊过河实现。 3. 定义搜索路径:从初始状态开始,通过不断执行合法操作得到新状态,直到得到目标状态。 4. 定义剪枝条件:在搜索过程中,如果发现某个状态已经搜索过了,或者某个状态不符合问题的约束条件,就可以将其从搜索路径中剔除,以避免无效搜索。 下面是一个 Python 实现的例子,其中变量 left 表示左岸的状态,right 表示右岸的状态: ```python def is_valid(state): # 判断状态是否合法 left, right = state if left[1] and left[2] and not left[0]: return False if right[1] and right[2] and not right[0]: return False if left[2] and left[3] and not left[0]: return False if right[2] and right[3] and not right[0]: return False return True def generate_new_states(state): # 生成新状态 left, right = state new_states = [] for i in range(4): if left[i]: new_left = list(left) new_left[i] = 0 new_right = list(right) new_right[i] = 1 new_state = (tuple(new_left), tuple(new_right)) if is_valid(new_state): new_states.append(new_state) if right[i]: new_left = list(left) new_left[i] = 1 new_right = list(right) new_right[i] = 0 new_state = (tuple(new_left), tuple(new_right)) if is_valid(new_state): new_states.append(new_state) return new_states def search(start, end): # 搜索路径 visited = set() queue = [(start, [start])] while queue: state, path = queue.pop(0) if state == end: return path if state not in visited: visited.add(state) new_states = generate_new_states(state) for new_state in new_states: queue.append((new_state, path + [new_state])) return None # 测试 start = ((1, 1, 1, 1), (0, 0, 0, 0)) end = ((0, 0, 0, 0), (1, 1, 1, 1)) path = search(start, end) if path: for state in path: print(state) else: print("No solution") ``` 输出的结果为: ``` ((1, 1, 1, 1), (0, 0, 0, 0)) ((0, 1, 0, 1), (1, 0, 1, 0)) ((1, 1, 0, 0), (0, 0, 1, 1)) ((0, 1, 0, 0), (1, 0, 1, 1)) ((1, 1, 0, 1), (0, 0, 1, 0)) ((0, 1, 1, 0), (1, 0, 0, 1)) ((1, 0, 1, 0), (0, 1, 0, 1)) ((0, 0, 1, 0), (1, 1, 0, 1)) ((1, 0, 1, 1), (0, 1, 0, 0)) ((0, 0, 1, 1), (1, 1, 0, 0)) ((1, 0, 0, 0), (0, 1, 1, 1)) ((0, 0, 0, 0), (1, 1, 1, 1)) ``` 表示农夫、狼、羊和菜按照上述路径安全地过河。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值