ChatGPT是什么?
ChatGPT是基于OpenAI
项目的聊天机器人。
OpenAI
项目由特斯拉创建,而ChatGPT
的母公司当前估值$29bln,据说微软准备购买$10bln。
目前ChatGPT不对中国开放,想要注册不光需要VPN,还需要手机短信验证。不过注册完成后登录不需要短信验证了。
具体怎么注册登录ChatGPT可以参考其它文章。
八皇后问题
八皇后问题(英文:Eight queens),是由国际象棋棋手马克斯·贝瑟尔于1848年提出的问题,是回溯算法的典型案例。
问题表述为:在8×8格的国际象棋上摆放8个皇后,使其不能互相攻击,
即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。
高斯认为有76种方案。
通过ChatGPT实现Rust语言的八皇后算法
直接问ChatGPT, “How to write eight queens algorithm in rust?”
如下图所示,直接就把rust代码实现显示出来,并进行了说明。
把rust代码copy出来,增加测试代码test_eight_queen()
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| fn eight_queens() { let mut board = vec![-1; 8];
solve(&mut board, 0); }
fn solve(board: &mut Vec<i32>, target_row: i32) { if target_row == 8 { print_board(board); return; }
for column in 0..8 { if is_safe(board, target_row, column) { board[target_row as usize] = column as i32; solve(board, target_row + 1); } } }
fn is_safe(board: &Vec<i32>, row: i32, column: i32) -> bool { for r in 0..row { let c = board[r as usize];
if c == column || (row - r).abs() == (column - c).abs() { return false; } }
return true; }
fn print_board(board: &Vec<i32>) { for r in 0..8 { for c in 0..8 { if board[r as usize] == c as i32 { print!("Q "); } else { print!(". "); } }
println!(""); }
println!(""); }
#[cfg(test)] mod tests { #[test] fn test_eight_queen() { super::eight_queens(); } }
|
运行
直接运行,没有错误。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
| hello $ cargo test --bin hello eight_queens::tests::test_eight_queen -- --show-output Finished test [unoptimized + debuginfo] target(s) in 0.11s Running unittests src/main.rs (target/debug/deps/hello-257baa7e5ed28221)
running 1 test test eight_queens::tests::test_eight_queen ... ok
successes:
---- eight_queens::tests::test_eight_queen stdout ---- Q . . . . . . . . . . . Q . . . . . . . . . . Q . . . . . Q . . . . Q . . . . . . . . . . . Q . . Q . . . . . . . . . Q . . . .
Q . . . . . . . . . . . . Q . . . . . . . . . Q . . Q . . . . . . . . . . . Q . . . . Q . . . . . Q . . . . . . . . . . Q . . .
Q . . . . . . . . . . . . . Q . . . . Q . . . . . . . . . Q . . . . . . . . . Q . Q . . . . . . . . . . Q . . . . . Q . . . . .
Q . . . . . . . . . . . . . Q . . . . . Q . . . . . . . . . . Q . Q . . . . . . . . . Q . . . . . . . . . Q . . . . Q . . . . .
. Q . . . . . . . . . Q . . . . . . . . . Q . . . . . . . . . Q . . Q . . . . . Q . . . . . . . . . . . . . Q . . . . . Q . . .
. Q . . . . . . . . . . Q . . . . . . . . . Q . Q . . . . . . . . . Q . . . . . . . . . . . . Q . . . . . Q . . . . . Q . . . .
. Q . . . . . . . . . . Q . . . . . . . . . Q . . . . Q . . . . Q . . . . . . . . . . . . . . Q . . . . . Q . . . . Q . . . . .
... ignore ... ...
successes: eight_queens::tests::test_eight_queen
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 22 filtered out; finished in 0.00s
|
最后
ChatGPT给人非常惊艳的感觉。我考虑以后经常使用它,如果它一直免费的话。