約瑟夫聽力訓(xùn)練

求一本書的pdf版《文案訓(xùn)練手冊》 作者 約瑟夫 休格曼
1個回答2023-08-20 16:28
我有??梢詡鹘o你。
第五人格如果練約瑟夫?
1個回答2023-05-23 22:25
約瑟夫比較復(fù)雜,先練習(xí)基礎(chǔ)比較好,照片能拍就拍,就算找不到人也可以當(dāng)做失常用,鏡像里的人也可以不用直接砍倒,先砍一刀然后不管她,這樣鏡像結(jié)束后現(xiàn)實(shí)世界中的人可以一刀倒地,除了香香,遇到香香還是直接砍倒掛起來,要在鏡像快結(jié)束的時候才掛,不然被救走就沒用了,刷到二階技能可以秒回牌找人,會找到一個離自己最近的,可以找的人包括倒地的,掛椅子的和正常的,懶得打字了,就這些吧
約瑟夫的簡介
1個回答2024-02-09 12:35

公元37生于耶路撒冷,公元100年卒于羅馬。約瑟夫是羅馬帝國時期以為僧侶出身的猶太歷史學(xué)家,也是一位猶太法利賽教徒(Pharisee)。
約公元64年游歷羅馬,在公元66年猶太起義前夕返回耶路撒冷。被俘后,他預(yù)言韋帕薌將取得帝位,隨即得到赦免。
公元70年耶路撒冷陷落后,他在羅馬定居并獲得羅馬公民權(quán)、一座房舍和養(yǎng)老金。
約瑟夫著有七卷本的《猶太戰(zhàn)爭》(Bellum Iudaicum),最初以阿剌美語(Aramaic)寫成,其他作品均以希臘語寫成,其中包括《猶太古史》(Antiquitates Iudaicae)——從創(chuàng)世到公元66年的猶太歷史,約公元94年以20卷本刊布。他的《自傳》(Vita)是對猶太起義由他發(fā)起和組織的說法的回復(fù)。

約瑟夫問題:
1個回答2024-03-18 17:56
約瑟夫環(huán):
約瑟夫環(huán)問題的一種描述是:編號為1.2.3…….n的n個人按順時針方向圍坐一圈

,每人手持一個密碼(正整數(shù)),開始任意選一個整數(shù)作為報數(shù)上限值,從第一

個人開始順時針自1開始順序報數(shù),報到m時停止報數(shù)。報m的人出列,將他的密

碼作為新的m值,從他順時針下一個人開始重新從1開始報數(shù),如此下去直到所有

的人全部都出列為止。試設(shè)計程序?qū)崿F(xiàn)。
要求:利用循環(huán)鏈表存儲結(jié)構(gòu)模擬此過程,按照出列的順序打印各人的編號。
測試數(shù)據(jù):m的值初始為20:密碼3 ,1,7,2,4,8,4。
正確的結(jié)果:6,1,4,7,2,3,5。
提示:程序運(yùn)行后首先要求用戶指定初始報數(shù)上限。然后讀取各人的密碼。設(shè)

n<30。


typedef struct node
{
int num,code;
struct node *next;
}lnode;
void main()
{
int i,j,key,n; /*i,j為記數(shù)器,key為輸入的密碼,n為人的總個數(shù)*/
lnode *p,*s,*head;
head=(lnode *)malloc(sizeof(lnode)); /*為頭結(jié)點(diǎn)分配空間*/
p=head;
printf("Please enter the num of the person:"); /*輸入人的總個數(shù)*/
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("Person %d",i);
printf(" code: ");
scanf("%d",&key); /*輸入各個人的密碼*/
s=p;
p=(lnode *)malloc(sizeof(lnode)); /*創(chuàng)建新的結(jié)點(diǎn)*/
s->next=p;
p->num=i;
p->code=key;
}
p->next=head->next;
p=head;
head=head->next;
free(p);


p=head;
do
{
printf("\nPerson%d Code:%d",p->num,p->code); /*輸出鏈表*/
p=p->next;
}while(p!=head);




printf("\nPlease enter your first key:"); /*輸入第一個數(shù)*/
scanf("%d",&key);
do
{
j=1; /*j為記數(shù)數(shù)*/
p=head;
while(j{
s=p;
p=p->next;
j++;
}
i=p->num;
key=p->code;
printf("\nThe out of the num:");
printf("Person%d",i);
s->next=p->next;
head=p->next; /*重新定義head,下次循環(huán)的開始結(jié)點(diǎn)*/
free(p);
n--; /*每循環(huán)一次人是減1*/
}while(n>0);
getch();
}
約瑟夫問題
1個回答2024-06-11 09:12

你的問題是什么?若是編寫程序要說明你要用的語言,以下是C的參考:

#include
#define N 30
int yuesefu1(int data[],int sum,int k)
{
? int i=0,j=0,count=0;
? while(count ? {
? ? if(data[i]!=0)/*當(dāng)前人在圈子里*/
? ? ? ? j++;
? ? if(j==k)/*若該人應(yīng)該退出圈子*/
? ? {
? ? ? ? data[i]=0;/*0表示不在圈子里*/
? ? ? ? count++;/*退出的人數(shù)加1*/
? ? ? ? j=0;/*重新數(shù)數(shù)*/
? ? }
? ? i++;/*判斷下一個人*/
? ? if(i==sum)/*圍成一圈*/
? ? ? ? i=0;
? }
? for(i=0;i ? ? ?if(data[i]!=0)
? ? ? ? ?return data[i];/*返回最后一個人的編號*/
}

int main()
{
? int data[N];
? int i,n,m;
? printf("請輸入總數(shù):\n");
? scanf("%d",&n);
? for(i=0;i ? ? data[i]=i+1;
? printf("請輸入報數(shù):\n");
? scanf("%d",&m);
? printf("最后的人為: %d\n",yuesefu1(data,n,m));
? return 0;
}


約瑟夫問題
1個回答2024-07-01 22:43
#include
#include

struct node{
int data;
struct node *next;
};

int main(){
int i,j,k,m,n;
struct node *head,*p,*q;
scanf("%d%d",&n,&m);

p=(struct node*)malloc(sizeof(struct node));
p->data=1;p->next=p;
head=p;

for(i=2;i<=n;i++)
{
q=(struct node*)malloc(sizeof(struct node));
q->data=i;q->next=head;
p->next=q;
p=q;
}

k=1;p=head;
while(p->next!=p){
if(k+1==m){
p->next=p->next->next;
k=1;
p=p->next;
}else{
k++;
p=p->next;
}
}
printf("%d\n",p->data);
system("pause");
return 0;
}
約瑟夫問題
1個回答2024-08-07 02:47
//約瑟夫環(huán):
//這并告?zhèn)€程序有點(diǎn)小問題,你自己看看吧,現(xiàn)在沒時間改了,起始位置有點(diǎn)問題

#include
#include
int flag;
typedef struct node
{int data;
struct node *next;
}LNode,* Linklist;
Linklist CreatFromHead() //鏈表的初始化
{ Linklist L=NULL,s;
LNode *r=NULL;
int x=1;
s=(Linklist)malloc(sizeof(LNode));
L = s;
r= L;

printf("請輸入請廳叢輸入報數(shù)的人數(shù)");
scanf_s("%d",&flag);
while(x!=flag+1)
{s=(Linklist)malloc(sizeof(LNode));
s->data=x;
r->next=s;
r=s;
x++;
}
s->next=L;

if(r!=NULL) r->next=NULL;
return L;
}
Linklist Getlist(Linklist L,int i) //鏈表的查找函數(shù)
{Linklist p;
int j;

p=L;j=0;
while(p->next!=NULL&&j { p=p->next;
j++;
}
if(i==j)return p;
else return NULL;
}
Linklist treat(Linklist L,Linklist s,int k,int i) //約瑟夫環(huán)算法
{
int j=0;
if(s==NULL)
{
s=L->扮蔽櫻next;
}
while(j {
s=s->next;
j++;
if(s==NULL)
{
s=L->next;
}
}
return s;
}
int Del_Linklist(Linklist L,Linklist p) //鏈表結(jié)點(diǎn)刪除函數(shù)
{Linklist s;
s=L;
while((s->next->data != p->data))
{
s=s->next;
}
s->next=s->next->next;
free(p);
return 1;
}
void main() //主函數(shù)
{Linklist L;
Linklist p,s;
int i,k,m,n;
L=CreatFromHead();
printf("請輸入查找的元素位置");
scanf_s("%d",&i);
printf("請輸入相隔的位置:");
scanf_s("%d",&k);
m=0;

s=Getlist(L,i);
printf(".");

while(m{
p=treat(L,s,k,i);

printf("%d\t",p->data);
s=p->next;

n=Del_Linklist(L,p);
m++;
}
}
約瑟夫問題
1個回答2024-07-02 17:23
約瑟夫環(huán):

約瑟夫環(huán)問題的一種描述是:編號為1.2.3…….n的n個人按順時針方向圍坐一圈



,每人手持一個密碼(正整數(shù)),開始任意選一個整數(shù)作為報數(shù)上限值,從第一



個人開始順時針自1開始順序報數(shù),報到m時停止報數(shù)。報m的人出列,將他的密



碼作為新的m值,從他順時針下一個人開始重新從1開始報數(shù),如此下去直到所有



的人全部都出列為止。試設(shè)計程序?qū)崿F(xiàn)。

要求:利用循環(huán)鏈表存儲結(jié)構(gòu)模擬此過程,按照出列的順序打印各人的編號。

測試數(shù)據(jù):m的值初始為20:密碼3,1,7,2,4,8,4。

正確的結(jié)果:6,1,4,7,2,3,5。

提示:程序運(yùn)行后首先要求用戶指定初始報數(shù)上限。然后讀取各人的密碼。設(shè)



n<30。





typedefstructnode

{

intnum,code;

structnode*next;

}lnode;

voidmain()

{

inti,j,key,n;/*i,j為記數(shù)器,key為輸入的密碼,n為人的總個數(shù)*/

lnode*p,*s,*head;

head=(lnode*)malloc(sizeof(lnode));/*為頭結(jié)點(diǎn)分配空間*/

p=head;

printf("Pleaseenterthenumoftheperson:");/*輸入人的總個數(shù)*/

scanf("%d",&n);

for(i=1;i<=n;i++)

{

printf("Person%d",i);

printf("code:");

scanf("%d",&key);/*輸入各個人的密碼*/

s=p;

p=(lnode*)malloc(sizeof(lnode));/*創(chuàng)建新的結(jié)點(diǎn)*/

s->next=p;

p->num=i;

p->code=key;

}

p->next=head->next;

p=head;

head=head->next;

free(p);





p=head;

do

{

printf("
Person%dCode:%d",p->num,p->code);/*輸出鏈表*/

p=p->next;

}while(p!=head);









printf("
Pleaseenteryourfirstkey:");/*輸入第一個數(shù)*/

scanf("%d",&key);

do

{

j=1;/*j為記數(shù)數(shù)*/

p=head;

while(j
{

s=p;

p=p->next;

j++;

}

i=p->num;

key=p->code;

printf("
Theoutofthenum:");

printf("Person%d",i);

s->next=p->next;

head=p->next;/*重新定義head,下次循環(huán)的開始結(jié)點(diǎn)*/

free(p);

n--;/*每循環(huán)一次人是減1*/

}while(n>0);

getch();

}
約瑟夫斯的著名的約瑟夫斯問題
1個回答2024-04-21 12:09

據(jù)說著名猶太歷史學(xué)家 Josephus有過以下的故事:在羅馬人占領(lǐng)喬塔帕特後,39 個猶太人與Josephus及他的朋友躲到一個洞中罩棚,39個猶太人決定寧愿死也不要被人抓到,于是決定了一個自殺方式,41個人排成一個圓圈,由第1個人開始報數(shù),每報數(shù)到第3人該人就必須自殺,然后再由下一個重新報數(shù),直到所有人都自殺身亡為止。
然而Josephus 和他的朋友并不想遵從,Josephus要他的朋友先假裝遵從,他將朋友與自局悶冊己安排在第16個與第31個位置,于是逃過了這場死亡游戲。
解法
約瑟夫問題可用代數(shù)分析來求解,將這個問題擴(kuò)大好了,假設(shè)現(xiàn)在您與m個朋友不幸參與了這個游戲,您要如何保護(hù)您的朋友?只要畫兩個圓圈就可以讓自己與朋友免于死亡游戲,這兩個圓內(nèi)圈是排列順序桐宏,而外圈是自殺順序,如下圖所示:

約瑟夫環(huán)
1個回答2022-10-26 22:26
約瑟夫環(huán)是一個數(shù)學(xué)的應(yīng)用問題:已知n個人(以編號1,2,3...n分別表示)圍坐在一張圓桌周圍。從編號為k的人開始報數(shù),數(shù)到m的那個人出列;他的下一個人又從1開始報數(shù),數(shù)到m的那個人又出列;依此規(guī)律重復(fù)下去,直到圓桌周圍的人全部出列。
鏈表方法:這個就是約瑟夫環(huán)問題的實(shí)際場景,有一種是要通過輸入n,m,k三個正整數(shù),來求出列的序列。這個問題采用的是典型的循環(huán)鏈表的數(shù)據(jù)結(jié)構(gòu),就是將一個鏈表的尾元素指針指向隊首元素。 p->link=head   解決問題的核心步驟:(程序的基本算法)   1.建立一個具有n個鏈結(jié)點(diǎn),無頭結(jié)點(diǎn)的循環(huán)鏈表;   2.確定第1個報數(shù)人的位置;   3.不斷地從鏈表中刪除鏈結(jié)點(diǎn),直到鏈表為空。   void JOSEPHUS(int n,int k,int m) //n為總?cè)藬?shù),k為第一個開始報數(shù)的人,m為出列者喊到的數(shù)   {   /* p為當(dāng)前結(jié)點(diǎn) r為輔助結(jié)點(diǎn),指向p的前驅(qū)結(jié)點(diǎn) list為頭節(jié)點(diǎn)*/   LinkList p,r,list; /*建立循環(huán)鏈表*/   for(int i=0;idata=i;   if(list==NULL)   list=p;   else   r->link=p;   r=p;   }   p->link=list; /*使鏈表循環(huán)起來*/   p=list; /*使p指向頭節(jié)點(diǎn)*/   /*把當(dāng)前指針移動到第一個報數(shù)的人*/   for(i=0;ilink;   }   /*循環(huán)地刪除隊列結(jié)點(diǎn)*/   while(p->link!=p)   {   for(i=0;ilink;   }   r->link=p->link;   printf("被刪除的元素:%4d ",p->data);   free(p);   p=r->link;   }   printf("\n最后被刪除的元素是:%4d",P->data);   }